Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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 如何匹配0或+;开头跟1到3位数字,但不是两者都跟?_Javascript_Regex - Fatal编程技术网

Javascript 如何匹配0或+;开头跟1到3位数字,但不是两者都跟?

Javascript 如何匹配0或+;开头跟1到3位数字,但不是两者都跟?,javascript,regex,Javascript,Regex,我用下面的正则表达式来检查手机号码 ^(0\d{10,15})$|(?!\1)(\+\d{1,3}\d{10,15})$ 字符串应匹配开头的0和后面的10到15位数字 或者(但不是两者都有) 以+开头的字符串,带有1至3位国家/地区代码,后跟10至15位数字 第一个条件已匹配,但带+[国家/地区代码]的数字不需要使用 ^(?:0|\+[1-9]\d{0,2})\d{10,15}$ 详情: ^-字符串的开头 (?:0 | \+[1-9]\d{0,2})-0或a+,一个非零位([1-9]),然

我用下面的正则表达式来检查手机号码

^(0\d{10,15})$|(?!\1)(\+\d{1,3}\d{10,15})$
字符串应匹配开头的0和后面的10到15位数字

或者(但不是两者都有)

+
开头的字符串,带有1至3位国家/地区代码,后跟10至15位数字

第一个条件已匹配,但带+[国家/地区代码]的数字不需要使用

^(?:0|\+[1-9]\d{0,2})\d{10,15}$
详情:

  • ^
    -字符串的开头
  • (?:0 | \+[1-9]\d{0,2})
    -
    0
    或a
    +
    ,一个非零位(
    [1-9]
    ),然后是零位、一位或两位(
    \d{0,2}
  • \d{10,15}
    -10到15位
  • $
    -字符串结束

请参阅。

另一个变体可能是

^(?:0\d{10,15}|\+\d{11,18})$
  • ^
    字符串的开头
  • (?:
    非捕获组
    • 0\d{10,15}
      匹配
      0
      和10-15位
    • |
    • \+\d{11,18}
      匹配
      +
      和11-18位数字
  • 关闭非捕获组
  • $
    字符串结尾

let regex=/^(?:0 | \+\d{1,3}?\d{10,15}$/;
控制台日志(regex.test(“01234567890”);
日志(regex.test(“01234567890”);
console.log(regex.test(“+911234567898765”);

日志(regex.test(“+911234567898766567576654765675576”)^(?:0 | \+{1,3})\d{10,15}$
这是否回答了您的问题。您可能会看到一些标记为假阳性的无效代码,因为无法区分哪些是国家代码,哪些不是<代码> > 11234567890123456“<代码>无效,如果您认为国家代码为“代码> + 1 < /代码>,编号为“代码> 1234567890123456”/代码>,则* *为国家代码<代码> + 11 < /代码>(编号“代码> 234567890123456”/代码>)和<代码> +112 < /代码>(编号为34567890123456)。谢谢,改为<代码> ^((0)+[1-9] {1,3})\{10},15}。$这样带
+0
的数字就不会通过正则表达式test@UditBhardwaj那么也许
^(?:0 | \+[1-9]\d{0,2})\d{10,15}$
会更好,
\+[1-9]{1,3}
不允许
102
120