检查字段中的字母和数字字符

时间:2012-10-10 09:34:28

标签: javascript regex validation

我正在尝试编写javascript代码,以确保我的表单中的字段的前2个字符为字母(US),其余8个为数字。

总数必须为10,如果其中任何一项不满意,我应该提出警告框。

我正在检查数字,但我不知道如何在同一字段中结合检查字母和数字。

这是我检查数字的代码。

请帮帮我! sid是我的字段名称。

// only allow numbers to be entered
var checkOK = "0123456789";
var checkStr = document.forms[0].sid.value;
var allValid = true;
var allNum = "";

for (i = 0; i < checkStr.length; i++)
{
    ch = checkStr.charAt(i);
    for (j = 0; j < checkOK.length; j++)
        if (ch == checkOK.charAt(j))
            break;

    if (j == checkOK.length)
    {
        allValid = false;
        break;
        if (ch != ",")
            allNum += ch;
    }
    if (!allValid)
    {
        alert("Please enter only 8 numeric characters in the \"sid\" field.");
        return (false);
    }
}    

4 个答案:

答案 0 :(得分:5)

单个正则表达式可以轻松执行此检查:

   /^[a-zA-Z]{2}\d{8}$/

/ ^匹配字符串的开头

[a-zA-Z] {2}恰好匹配2个字母字符

\ d {8}完全匹配8位

$ /匹配字符串的结尾

使用如下:

 /^[a-zA-Z]{2}\d{8}$/.test (str)   // Returns true or false

答案 1 :(得分:0)

您可以使用正则表达式。 jsfiddle

var regExp = /[a-z]{2}[0-9]{8}/i;

var text = 'ab12345678'; 
if(text .replace(/[a-z]{2}[0-9]{8}/i, "").length > 0){
    alert("Please enter only 8 numeric characters in the \"sid\" field.");
    return (false);
} 

答案 2 :(得分:0)

简单的正则表达式,检查2个字符+8个数字

var checkStr = document.forms[0].sid.value;
if (checkStr.match(/\b[A-z]{2}[0-9]{8}\b/) === null) {
    alert("Please enter only 8 numeric characters in the \"sid\" field.");
    return (false);
}

答案 3 :(得分:0)

/^([a-zA-Z]{2}\d{8})$/;应检查2个字符,然后检查8个小数。