Home > Blockchain >  How can I difference id (number) and email (string) in Javascript?
How can I difference id (number) and email (string) in Javascript?

Time:05-10

I have API and some of them return to only email and some return only id. For example:

user1 value: [email protected]

user2 value: 1212391361783212

I need that if I have input and wanna give value if the value is email. If the value is id, the input value must be null

<input value={???}/>

CodePudding user response:

Your code sample is incomplete but what you're trying to do should look something like this. Rather than assuming any non-numerical response is a valid email, which can break in the future as the API changes, be explicit about what you're looking for as below.

// Assume you're comfortable using a relatively loose pattern to match an email i.e. no overly strict formatting rules
const mailPattern = /^[a-zA-Z0-9.!#$%&’* /=?^_`{|}~-] @[a-zA-Z0-9-] (?:\.[a-zA-Z0-9-] )*$/
// Assume response is in scope and contains the API response with the email or id deserialized from the body
const value = mailPattern.test(response) ? value : null

CodePudding user response:

You can check if a string is a valid number using isNaN. So

if(isNaN(value)) {
    // value is email
 } else {
    // value is id
 }

CodePudding user response:

You can use Regular expression /^\d $/ combined with RegExp.prototype.test():

if (/^\d $/.test(value)) {
  // It's number
}
  • Related