繁体   English   中英

如何检查String是否以javascript中的数字开头

[英]How to check if String starts with number in javascript

我想弄清楚用户是否输入了电子邮件ID或电话号码。 因此,我想检查字符串是否以+1或数字开头,以确定它是否是电话号码。 如果它不是我得出结论它是一个电子邮件或我可以检查它是否以字母表开头确定。 我该如何检查。 如果那是soln,我对正则表达式很恐怖。

您可以使用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
}
if (!isNaN(parseInt(yourstrung[0], 10))) {
  // Is a number
}

只需执行以下操作:

if ( !isNaN(parseInt(inputString)) ) {
    //this starts with either a number, or "+1"
}

我可以建议使用这里的正则表达式电子邮件验证稍微不同的方法吗?

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);
}

通过这种方式,您可以更彻底地检查输入的实际内容,而不仅仅是猜测它是一个还是另一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM