【发布时间】:2011-08-25 10:59:53
【问题描述】:
我需要一个具有以下规格的正则表达式:
- 允许的字符:
(空格)、(、)、+、–、0-9 -
(可以是修剪后的第一个字符,如(+61) 312 405 678或+61 312 405 678 - 长度:最少 8 个字符,最多 16 个 - 在出现边界条件时显示错误。
【问题讨论】:
标签: java regex jakarta-ee
我需要一个具有以下规格的正则表达式:
(空格)、(、)、+、–、0-9( 可以是修剪后的第一个字符,如 (+61) 312 405 678 或 +61 312 405 678
【问题讨论】:
标签: java regex jakarta-ee
我宁愿坚持标准,也不会重新发明轮子。您可以使用一个特殊的库来处理称为libphonenumber的电话号码
【讨论】:
试试这个
reg exp: ^(\(\+\d{2}\)|\+\d{2})[ -]?(\d{3}[ -]?){2}\d{3}$
【讨论】:
不是重复的,但this 可能会给出一些答案。我的方法是去掉不是数字的字符(除了+),然后根据它处理正则表达式。应该更容易处理。
你也可以试试http://regexlib.com。
【讨论】:
根据您的规范,这个正则表达式可以工作:
[-+\d() ]{8,16}
这也将匹配 (--++--),因此您可能需要更改/澄清您的规范。
此外,正则表达式不会“显示错误”,它们唯一要做的就是匹配与否。
【讨论】: