如何修改正则表达式,排除手机号空格并验证带+号的合法号码
解决方案
要实现你的需求,你需要限制整个字符串只能由+符号和数字组成,同时确保开头和结尾没有空格,且数字位数至少为10位。
推荐正则表达式(符合国际手机号常见格式)
^\+\d{10,}$
正则解释
^:匹配字符串的起始位置,彻底杜绝前置空格\+:匹配+符号(由于+是正则中的特殊元字符,必须用反斜杠\转义)\d{10,}:匹配至少10位数字(\d代表任意数字,{10,}表示长度≥10)$:匹配字符串的结束位置,彻底杜绝后置空格
这个正则会精准匹配+41555555556这类+开头、后接至少10位数字的字符串,而所有带空格(开头、中间、结尾)的格式都会被拒绝。
兼容+符号不在开头的场景(少见)
如果你的业务场景允许+出现在字符串中间(比如非标准格式),同时要求必须包含+、至少10位数字、无任何空格,可以使用这个正则:
^(?=.*\+)(?=.*\d{10,})[+\d]+$
正则解释
(?=.*\+):正向预查,确保字符串中至少包含一个+(?=.*\d{10,}):正向预查,确保字符串中至少有10位数字[+\d]+:限制整个字符串只能由+和数字组成,排除空格等其他字符^和$:确保匹配整个字符串,无前后空格
验证示例
- 通过:
+41555555556(10位数字)、+8613800138000(11位数字) - 拒绝:
+41555555556(前置空格)、+41555555556(后置空格)、+41 555555556(中间空格)、41555555556(无+)、+415555556(仅9位数字)
内容的提问来源于stack exchange,提问作者elio_90
相关产品推荐
相关产品推荐

