我想弄清楚用户是否输入了电子邮件ID或电话号码。因此,我想检查字符串是否以+1或数字开头,以确定它是否是电话号码。如果它不是我得出结论它是一个电子邮件或我可以检查它是否以字母表开头确定。我该如何检查。如果那是soln,我对正则表达式很可怕。
答案 0 :(得分:6)
您可以使用RegEx执行此操作,但简单的if语句也可以使用,并且可能更具可读性。如果字符串中不存在@
字符且第一个字符是数字,则假定它是电话号码是合理的。否则,它可能是一个电子邮件地址,假设存在@
。否则,它可能是无效输入。 if语句如下所示:
if(yourString.indexOf("@") < 0 && !isNaN(+yourString.charAt(0) || yourString.charAt(0) === "+")) {
// phone number
} else if(yourString.indexOf("@") > 0) {
// email address
} else {
// invalid input
}
答案 1 :(得分:5)
if (!isNaN(parseInt(yourstrung[0], 10))) {
// Is a number
}
答案 2 :(得分:3)
请执行以下操作:
if ( !isNaN(parseInt(inputString)) ) {
//this starts with either a number, or "+1"
}
答案 3 :(得分:1)
我可以建议使用here找到正则表达式电子邮件验证的方法略有不同吗?
if(validateEmail(input_str)) {
// is an email
} else if(!isNaN(parseInt(input_str))) {
// not an email and contains a number
} else {
// is not an email and isn't a number
}
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
通过这种方式,您可以更全面地检查输入的实际内容,而不仅仅是猜测它是一个或另一个。