1

我正在尝试验证联系号码字段,我不允许任何字母。

JS文件

$(document).ready(function() {
    //var regex = /[^\d]/;
    var regex = /[^a-zA-Z]/;
    $('#contact_num').blur(function() {
        if(regex.test($(this).val()) == true) {
            alert('valid');
        } else {
            alert('invalid');
        }
    });
});​

文件

Contact Num: <input type="text" id="contact_num" />​

如果字母带有数字,我的正则表达式似乎返回有效,这必须是错误的。

演示


4

2 回答 2

2

尽管您非常接近,但您只检查一个字符。您需要侧面的锚字符。

var regex = /^[^a-zA-Z]+$/;
于 2012-05-03T16:19:05.220 回答
1

如果您不仅允许字母但允许任何其他字符,那么您应该反转您的正则表达式和您的条件:

var regex = /[a-zA-Z]/;
...
if( !regex.test($(this).val()) ) {

http://jsfiddle.net/PYwLJ/3/

于 2012-05-03T16:22:49.013 回答