PoisonMaster
PoisonMaster

Reputation: 47

How to tell if not number or letter

I have the following bit of code which is working, my question is if the user enters something that is not a letter or number how would I go about doing this ?

E.g they enter the letter "?" I want the console to now say " ? is not a letter or number" please see my below code to see what I currently have.

    let upperLower = prompt("please enter either a uppercase letter, lowercase letter or a number");
if (!isNaN(parseInt(upperLower))){

    console.log(upperLower + " is a number");
}
else if (upperLower == upperLower.toLowerCase()) {

  console.log(upperLower + " character is lowercase");
}
else if (upperLower == upperLower.toUpperCase()) {
    
    console.log(upperLower + " character is uppercase");
}`

Upvotes: 0

Views: 356

Answers (4)

jtwalters
jtwalters

Reputation: 1134

Use RegEx:

if (/^[0-9]+(?:\.[0-9]+)?$/.test(upperLower)) { // 123 or 123.456
    console.log(upperLower, "is a number")
}

if (/^[0-9]+$/.test(upperLower)) { // only 123
    console.log(upperLower, "is a number")
}

if (/^[a-z]+$/.test(upperLower)) {
    console.log(upperLower, "is a lowercase")
}

if (/^[A-Z]+$/.test(upperLower)) {
    console.log(upperLower, "is a uppercase")
}

You can test any regex in regex101.

Upvotes: 0

unrealapex
unrealapex

Reputation: 630

This problem can be solved using a regular expression. Tested on Regex101.

var foo = prompt("please enter either a character or integer");
// if word character or digit => true, else => false
const bar = new RegExp(/[\da-z]+/, "i");
// is any digit => true, else => false
const numberRE = /\d+/;

if (bar.test(foo)){
     // if a number, log it's a number, else it's a string
    if (numberRE.test(foo)) {
     console.log("You entered a number");
    } else {
      console.log("You entered a letter");
    }
   // if input isn't a digit or word character, log this
} else {
  console.log("Enter a character or integer!");
} 

Upvotes: 0

zr0gravity7
zr0gravity7

Reputation: 3194

function isNotAlphanumeric(str) {
    return !(str.length === 1 && (/[a-z\d]/i).test(str));
}

Upvotes: 1

ᴓᴓᴓ
ᴓᴓᴓ

Reputation: 1166

using How to check if character is a letter in Javascript?

Implementation:

let upperLower = prompt("please enter either a uppercase letter, lowercase letter or a number");

if( (upperLower.toUpperCase() == upperLower.toLowerCase() || upperLower.codePointAt(0) > 127) &&  isNaN(parseInt(upperLower))) {
    console.log(upperLower + " is not a letter or number");
}

else if (!isNaN(parseInt(upperLower))){

    console.log(upperLower + " is a number");
}
else if (upperLower == upperLower.toLowerCase()) {

  console.log(upperLower + " character is lowercase");
}
else if (upperLower == upperLower.toUpperCase()) {
    
    console.log(upperLower + " character is uppercase");
}

Upvotes: 0

Related Questions