我正在尝试验证用户是否正确输入了手机号码。 为此我写了以下正则表达式,似乎是错误的。 移动电话号码可选以 + 开头,可以有可选空格,圆括号,连字符( - )。 它不能包含任何字母或任何其他字符。
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
我应该如何为上述标准编写正则表达式?
感谢。
答案 0 :(得分:3)
答案 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');