Javascript 正则表达式模式验证
我有一个用于电话验证的正则表达式,它应该接受“空格”和“+” 例如+212 0780526395Javascript 正则表达式模式验证,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*: +匹配+
这是我的正则表达式:+[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个或更多空格字符(空格、换行符、制表符等)+
字符只有在所有数字之前才有效。因此,请使用:
^ *\+?((?: *\d){10}) *$
^
匹配字符串的开头*
匹配0个或多个空格\+?
匹配可选的+
字符((?:*\d){10})
匹配0或更多空格的10次出现(见下文),后跟捕获组1中的数字*
匹配0个或多个空格$
匹配字符串的结尾((?:*\d){10})
,这要求输入正好包含10位数字。我只是随便选了10号。要允许7到10位的范围,例如使用((?:*\d){7,10})
。或者使用((?:*\d)+)
指定需要一个或多个数字
需要锚定^
和$
以确保输入仅包含可接受的输入
什么不起作用?你用什么方法传递正则表达式?期望得到什么?请尝试以下操作:
/^\+\d{3}\d{10}$/