Reputation: 47
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
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
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
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