2

我需要验证使用输入到输入框中的数字。数字的长度必须正好为 12 个字符,并且以 931 开头。

var reg = /^931[0-9]$/;
var val = $("#sms_number").val();

if (val.length === 12 && reg.test(val)) {                    


}

以上不正确。

4

3 回答 3

4
var reg = /^931\d{9}$/;
var val = $("#sms_number").val();
if (reg.test(val)) {
    // ....
}
于 2013-05-20T11:51:37.087 回答
2

你也可以在没有正则表达式的情况下做到这一点。

var val = $("#sms_number").val();

if (val.length === 12 && val.toString().indexOf("931") == 0) {                    

}

简单但可能不如正则表达式解决方案强大

于 2013-05-20T12:11:56.970 回答
1

以简洁的方式,以下应该起作用:

/^931[0-9]{9}$/.test($("#sms_number").val())? console.log(true): console.log(false);

\dxdazz 的答案是正确的,但如果您也不想容纳 unicode 数字,我建议不要使用。如果你只使用英文数字(我认为这就是它的意思,因为它使用931确实是英文的前缀)你应该使用[0-9]而不是\d. 前者更快。

于 2013-05-20T12:08:32.363 回答