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
}