使用JQuery验证验证联系号码

时间:2013-05-15 14:49:58

标签: jquery regex jquery-validate

我正在尝试验证用户是否正确输入了手机号码。 为此我写了以下正则表达式,似乎是错误的。 移动电话号码可选 + 开头,可以有可选空格,圆括号,连字符( - )。 它不能包含任何字母任何其他字符

jQuery.validator.addMethod("mobileNumber", function(value,element) {
            return this.optional(element) ||  /(?:([+]))?[0-9]*/.test(value);
}, "Please enter a valid Contact Number");

以下输入应匹配,

  

+ 1-222

     

(+ 1)222

     

1222

     

2222

     

02-222

但这些不应该匹配。

  

1 + 222

     

AAA

     

AA12

     

2.2.2

我应该如何为上述标准编写正则表达式?

感谢。

2 个答案:

答案 0 :(得分:3)

尝试以下方法:

^(\+|\(\+)?\d+(\-|\)|\s)+?\d+

在此处查看:http://regexr.com?34sm1

答案 1 :(得分:0)

// true
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('+1-222');
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('(+1)222');
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('+1222');
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('01-2222');
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('86-2222');
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('2222');

// false
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('1+2342');
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('+123-222');
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('AAA');
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('6786-2342');