Php 正则表达式工作不正常
在这里,我试图写一个正则表达式来验证我自己认为的电话号码。 代码如下所示Php 正则表达式工作不正常,php,regex,Php,Regex,在这里,我试图写一个正则表达式来验证我自己认为的电话号码。 代码如下所示 $hai = "+458745555---55"; if (!preg_match("/^[\+]{0,1}[0-9\s(\-){0,2}]{6,15}$/", $hai)) { $valPhone = "Invalid phone number"; } else { $valPhone = "Valid phone number"; } echo $valPhone; 规则: 1.字符串前面可能出现“
$hai = "+458745555---55";
if (!preg_match("/^[\+]{0,1}[0-9\s(\-){0,2}]{6,15}$/", $hai)) {
$valPhone = "Invalid phone number";
} else {
$valPhone = "Valid phone number";
}
echo $valPhone;
规则:
1.字符串前面可能出现“+”符号
2.剩余和-中只能有数字、、、空格,且应介于0-2之间
3.不包括“+”的字符串的最大长度为6-15
4.如果找到“+”号,则无法添加剩余字符串的空格开始和结束
但是“-”的情况对我来说不太好。如果有任何帮助,我将不胜感激 此正则表达式完成以下工作:
(?=^\+?[^+]{6,15}$)(?!(?:.*-.*){3,})^\+?\d[\d -]+\d$
详情:
整个字符串长度为6到15个字符,(?=^\+?[^+]{6,15}$)
是可选的李>+
不能超过2个(?!(?:.-.*){3,})
李>-
字符串将只包含数字、空格和^\+?\d[\d-]+\d$
-
请参见请向我们展示您希望使用的电话号码格式示例find@Webeng+9578895658,+2770259669,+91487-2589589,“-”符号的可能性应最大为2,并且空格没有任何限制。在字符类中不可能使用量词,因此[0-9\s(\-){0,2}匹配其中的任何文字字符,因此
0-9
,\s
,(
,-
,)
,,{
,,}
。工作正常..如果有“+”号,剩余字符串的最小长度应为6。+5645有效,5645无效,最小数字长度为6而不是5。谢谢..托马斯·阿尤布..工作正常..我有一个疑问..我们如何限制剩余{6,15}的起始位置和结束位置之间的空格字符串?是..除了“+”符号外,我需要以数字开头,在这两个空格之间是可能的。。