我正在尝试根据我们的业务逻辑实现电话号码的正则表达式。
客户想要的是手机必须包含8到15个字符的数字,并且还可以在任何地方包含任何不会增加数字的空格和点。所以,理论上这应该是有效的:
3 .... 44444444
因为它包含9个数字。
我真的不能再进一步了解
~[0-9\.\ ]{8,15}$
但显然它也将点和空格计算到极限。
甚至可以通过正则表达式来实现它吗?
答案 0 :(得分:3)
正则表达式尝试:
^(?:[ .]*\d){8,15}[ .]*$
这将匹配8到15位数字,其间任意数量的空格或点都会发生。
未捕获的组(?:[ .]*\d)
匹配任意数字点或空格前面的任何数字,{8,15}
确保数字上的范围
[ .]*$
匹配末尾任意数量的点或空格
答案 1 :(得分:1)
据我所知,正则表达式无法验证这一点。但是,您可以全局删除所有空格和点,然后尝试匹配^[[:digit:]]{8,15}$