需要与以下标准匹配的特定英国电话验证正则表达式
Need specific UK telephone validation regex matching to below criteria
- 最小字符数(不包括空格(为 11,最大值为 13。
- 如果用户输入的电话号码以"07"或"+447"以外的内容开头,则最少字符数为 10,最大值为 13。
- 用户可以输入空格。
以下数字应通过正则表达式
- 07424689253 (11(
- +447424689253 (13(
- 02049533525 (11(
- 0169773355 (10(
我已经写了这个正则表达式,但不起作用。请帮忙
/^('(?(0|'+44)[1-9]{1}'d{1,4}?')?'s?'d{3,4}'s?'d{3,4})$/
试试这个
/^'s*(?:'+44(?:'s*'('s*0's*'))?|0)'s*(7(?:'s*'d){9}|(?='d)[^7](?:'s*'d){8,9})'s*$/
// ^-------------A------------^ ^-----B-----^ ^-----------C----------^
- A 是国际/国内代码,即
+44
、0
或+44 (0)
,请考虑添加0044
、0044 (0)
- B 是手机号码,
7
后跟 9 位数字 - C 是座机号码,非 7 后跟 8 或 9 位数字,考虑分成区域组
除+44
外,整个活动都允许有空格
有一个捕获组,它会给你B或C的结果,具体取决于匹配项
例子
var re = /^'s*(?:'+44(?:'s*'('s*0's*'))?|0)'s*(7(?:'s*'d){9}|(?='d)[^7](?:'s*'d){8,9})'s*$/;
// Mobile
'+44 (0) 712 345 6789'.match(re); // ["+44 (0) 712 345 6789", "712 345 6789"]
'+44 712 345 6789'.match(re); // ["+44 712 345 6789", "712 345 6789"]
'0712 345 6789'.match(re); // ["0712 345 6789", "712 345 6789"]
// Landline
'020 4 953 3525'.match(re); // ["020 4 953 3525", "20 4 953 3525"]
'016 977 3355'.match(re); // ["016 977 3355", "16 977 3355"]
此处使用的有用正则表达式模式
-
(?:pattern)
非捕获组;此模式是一个组,但未单独捕获 -
(?:'s*'d){9}
任意数量的空格后跟一个数字,9 次 -
(?=pattern)
展望;查看接下来pattern
是否匹配,但不匹配 -
(?='d)[^7]
,如果下一个字符是数字,则匹配下一个字符(如果不是7
相关文章:
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 带有加号的电话号码验证(可选)
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- Html/Javascript-如何屏蔽除英国以外的所有欧盟国家,并允许所有非欧盟国家
- 在没有'我没有接到电话
- 正则表达式,用于在 JavaScript 中为电话号码添加短划线
- 通过Javascript将HTML中的电话号码与URL参数进行交换
- Javascript/Ajax:通过点击按钮检查有效的电子邮件和电话号码
- 如何将页面上的所有电话号码更改为可点击链接,不包括特定类别的元素
- PhoneGap onclick没有接到电话
- 验证澳大利亚的电话号码
- iScroll不断向上滚动(电话间隙)
- 使用javascript验证电话号码无效
- Regex表示8位电话号码(新加坡号码长度)
- HTML文本框,它接受电话号码,并以美国电话号码格式显示
- 谷歌广告词转换电话
- 试图清理一个电话号码,以便如果它像816-345-6757一样被输入,它会像8163456757一样返回它
- 输入中的国际电话号码格式
- 什么是英国电话号码验证表达式和语法
- 需要与以下标准匹配的特定英国电话验证正则表达式