我正在尝试使用regex
的以下格式验证电话号码。但它在某些条件下失败了。
电话号码:
2323232
0112323232
011-2323232
+91-9898989898
98989898998
我为上述数字写了regex
:
^[+]?(\d{2,4}-)?(\d{7,11})
测试了它here。
我在以下代码段中使用过:
var phonePattern = /^[+]?(\d{2,4}-)?(\d{7,11})/;
if(!(phonePattern.test(formData.phone))){
$('#errorList').append('<li>Invalid Phone Number</li>');
error = 1;
}
正则表达式适用于我需要的电话号码,但对formData.phone = '011-2323232asdasd'
也是如此。我是regex
的新用户及其在javascript
中的用法。我怎样才能使它工作?请指教。
答案 0 :(得分:1)
在正则表达式的末尾添加$
:^[+]?(\d{2,4}-)?(\d{7,11})$
这意味着'文本结束/行',所以你的正则表达式只需要数字直到字符串结尾。
答案 1 :(得分:1)
你需要把锚点放在两个两端(比如^<a-regex-goes-here>$
,否则它会在比赛后留下垃圾。
答案 2 :(得分:0)
您需要在代码中添加“end with($)”运算符。
/^[+]?(\d{2,4}-)?(\d{7,11})$/
你可能想看看这个 http://www.regular-expressions.info/javascript.html
答案 3 :(得分:0)
试试这个正则表达式/^((\+91)?-?[0\+\(]*\d{2,3}[-\s\)]*\.?\d{3,4}[-\s]*\.?[0-9]{4})$/
这适用于所有类型的有效电话号码。
对于以下条件,返回true:
1. Just 10 digits
2. +00 0000 0000
3. +1 000 000 000
4. (3 digits)<space>(3 digits)<space>4 digits
5. (3 digits) - 3 digits - 4 digits
6. +91-9898989898
还有很多..
答案 4 :(得分:0)
我认为你最终错过了$
。
使用:
^[+]?(\d{2,4}-)?(\d{7,11})$