检查输入错误,Javascript

时间:2011-08-25 21:24:42

标签: javascript string unicode input character

我试图检查用户输入的内容是以两个字母开头,后跟6,8或10个数字。检查字符串长度应该没问题,但有没有更简洁的方法来检查前两个字符是字母,后续的6,8或10个字符是数字而不是将每个字符转换为unicode然后检查那个方式?

3 个答案:

答案 0 :(得分:2)

您可以使用正则表达式:

^[a-zA-Z]{2}(?:\d{6}|\d{8}|\d{10})$

只有当前两个是alpha并且接下来的6或8或10是数字时才会通过。

<强> JS

function isValid(txt) {
    return /^[a-zA-Z]{2}(?:\d{6}|\d{8}|\d{10})$/.test(txt);
}

alert(isValid("ab123456"));   // pass
alert(isValid("ab1234567"));  // fail, contains 7 digits
alert(isValid("abc123456"));  // fail, starts with 3 chars 
alert(isValid("ab12345678")); // pass

这是完整的JS示例:http://jsfiddle.net/mrchief/sRLrW/

答案 1 :(得分:0)

为什么不使用正则表达式? Javascript有一个不错的正则表达式支持。

答案 2 :(得分:0)

离开我的头顶:

var str = 'abc1234567890';

if (/^[a-z]{2}[0-9]{6}(([0-9]{2}){0,2}$/.test(str)) {
   ...

}

执行[0-9] {6,10}是不行的,因为它允许7或9位数,而不仅仅是6/8/10。