Mic*_*ert 6 javascript php regex
我在使用电话号码的正则表达式时遇到了一些麻烦.我正在尝试为欧洲电话号码创建一个尽可能广泛的正则表达式.电话号码可以以+或两个前导0开头,然后是0到40之间的数字.但是,这不是必需的,因此第一部分也可以忽略.在那之后,它应该都是数字,分组成至少两个,在组之间有空格或 - .
我放在一起的正则表达式可以在下面找到.
/((\+|00)+[0-4]+[0-9]+)?([ -]?[0-9]{2,15}){1,5}/
Run Code Online (Sandbox Code Playgroud)
这应该与以下结构相匹配
0031 34-56-78
0032123456789
0033 123 456 789
0034-123-456-789
+35 34-56-78
+36123456789
+37 123 456 789
+38-123-456-789
...
Run Code Online (Sandbox Code Playgroud)
它根据我的javascript也匹配
+32 a54b 67-0:
Run Code Online (Sandbox Code Playgroud)
所以我一定是在某个地方弄错了,但我真的看不到它.任何帮助,将不胜感激.
Mar*_*cus 10
问题是你不使用锚点^ $来定义字符串的开头和结尾,因此会在字符串中的任何地方找到匹配项.
/^((\+|00)+[0-4]+[0-9]+)?([ -]?[0-9]{2,15}){1,5}$/
Run Code Online (Sandbox Code Playgroud)
添加锚点就可以了.可以在此处找到有关这些元字符的更多信息.