明白楼主的意思了,单独使用手机部分和固话部分的正则,得到号码非法,也就是说正则判断正确!
使用连接起来的表达式,号码通过。原因:"|"连接符;由于此连接符优先级最低,所以它将连接后的表达式分为两个部分
^(0?1[358]\d{9}) 和 ((0(10|2[1-3]|[3-9]\d{2}))?[1-9]\d{6,7})$
导致了连接后的表达表达意思错误,解决方法有两种:
^(0?1[358]\d{9})$|^((0(10|2[1-3]|[3-9]\d{2}))?[1-9]\d{6,7})$
或者
^((0?1[358]\d{9})|((0(10|2[1-3]|[3-9]\d{2}))?[1-9]\d{6,7}))$
也就是在^和$中间加一对括号。
================
还有不明白的,可以发Hi消息。
^(0?1[358]\d{9})|^((0(10|2[1-3]|[3-9]\d{2}))?[1-9]\d{6,7})$
他是迭代匹配的。
8383463回答的有道理,学习了
这是什么来的,看不懂,帮你顶上去....