Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript正则表达式验证电话号码_Javascript_Regex - Fatal编程技术网

Javascript正则表达式验证电话号码

Javascript正则表达式验证电话号码,javascript,regex,Javascript,Regex,我需要通过正则表达式验证电话号码。电话号码应该是 从(9 | 09 | 8869 |+8869)开始 后跟8位数字[0-9] 我提出了/(09 | 9 | 8869 |+8869)[0-9]{8}$/g。 我使用+8869900000000进行测试,预计它不会匹配,但实际上它通过了测试 你能帮我解决正则表达式的问题吗?我该如何修复它呢?您正在寻找的正则表达式是:^([0]?9)|([+]?8869))[0-9]{8}$ 注意圆括号用于确定条件的方式。我们需要在2个子集中的任何一个子集中进行匹

我需要通过正则表达式验证电话号码。电话号码应该是

  • 从(9 | 09 | 8869 |+8869)开始
  • 后跟8位数字[0-9]
我提出了
/(09 | 9 | 8869 |+8869)[0-9]{8}$/g
。 我使用+8869900000000进行测试,预计它不会匹配,但实际上它通过了测试
你能帮我解决正则表达式的问题吗?我该如何修复它呢?

您正在寻找的正则表达式是:
^([0]?9)|([+]?8869))[0-9]{8}$


注意圆括号用于确定条件的方式。我们需要在2个子集中的任何一个子集中进行匹配,然后在它前面加上8位数字。

您可以使用这个正则表达式:
/^(0?9?\+?8869)\d{8}$/

组(0?9 |+?8869)用于起始条件,其中0在9之前是可选的,而+在8869之前是可选的


演示:

+
是一个无效的模式-您不能重复这样的替换。
/(09 | 9 | 8869)[0-9]{8}$/g
是否正确?我允许用户输入
+
您应该像
\+
一样转义
+
,您可以添加一个锚来断言字符串的开头
^(?:09 | 9 | 8869 | 8869)[0-9]{8}$
如果您不需要捕获组,您可以使用
(?:
^(09 | 9 | 8869 | 8869 |)[0-9]}{8}{$您可以省略两组括号,并且0不必位于方括号之间
^(0?9 |[+]?8869)[0-9]{8}$