Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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,我有一个用于电话验证的正则表达式,它应该接受“空格”和“+” 例如+212 0780526395 这是我的正则表达式:+[0-9]\s*,但它不起作用如果你很接近,你必须替换+,如果它必须只在开头,让空格在数字之间: \+[0-9\s]+ 更好的方法是: \+[0-9]+[0-9\s]* 要强制+符号后面至少有一个数字。您可以使用: (.*)1?-?\.?\(?\d{3}[\-\)\.\s]?\d{3}[\-\.\s]?\d(.*) 在您的正则表达式中测试,+[0-9]\s*: +匹配+

我有一个用于电话验证的正则表达式,它应该接受“空格”和“+”

例如+212 0780526395


这是我的正则表达式:+[0-9]\s*,但它不起作用

如果你很接近,你必须替换
+
,如果它必须只在开头,让空格在数字之间:

\+[0-9\s]+
更好的方法是:

\+[0-9]+[0-9\s]*
要强制+符号后面至少有一个数字。

您可以使用:

(.*)1?-?\.?\(?\d{3}[\-\)\.\s]?\d{3}[\-\.\s]?\d(.*)

在您的正则表达式中测试,
+[0-9]\s*

  • +
    匹配
    +
  • [0-9]
    匹配一个数字
  • \s*
    匹配0个或更多空格字符(空格、换行符、制表符等)
  • 所以你的正则表达式匹配“+8”、“+8”、“+8”,也就是说,一个加号后跟一个数字,后跟任意数量的空格字符

    我假设
    +
    字符只有在所有数字之前才有效。因此,请使用:

    ^ *\+?((?: *\d){10}) *$
    
  • ^
    匹配字符串的开头
  • *
    匹配0个或多个空格
  • \+?
    匹配可选的
    +
    字符
  • ((?:*\d){10})
    匹配0或更多空格的10次出现(见下文),后跟捕获组1中的数字
  • *
    匹配0个或多个空格
  • $
    匹配字符串的结尾
  • 上述正则表达式中的关键子正则表达式是
    ((?:*\d){10})
    ,这要求输入正好包含10位数字。我只是随便选了10号。要允许7到10位的范围,例如使用
    ((?:*\d){7,10})
    。或者使用
    ((?:*\d)+)
    指定需要一个或多个数字

    需要锚定
    ^
    $
    以确保输入仅包含可接受的输入


    什么不起作用?你用什么方法传递正则表达式?期望得到什么?请尝试以下操作:
    /^\+\d{3}\d{10}$/