我有一个正则表达式问题:我试图强制以“00”或“+”开头的电话号码,但我的尝试不起作用。
String PHONE_PATTERN = "^[(00)|(+)]{1}[0-9\\s.\\/-]{6,20}$";
它仍然允许例如“0123-45678”。我做错了什么?
答案 0 :(得分:2)
在字符内部,每个字符都按字面匹配,这意味着[(00)|(+)]
将匹配0 or + or | or ( or )
使用此正则表达式:
String PHONE_PATTERN = "^(?:00|\\+)[0-9\\s.\\/-]{6,20}$";
答案 1 :(得分:0)
如果您已删除空格,连字符和数字中的任何内容,并且您要捕获+ xxnnnnnnnn或00xxnnnnnnnn,其中xx是国家/地区代码,n是9位数字或0nnnnnnnnn,其中非国际数字以零后跟9位数,然后试试这个正则表达式
String PHONE_PATTERN = "^(?:(?:00|\+)\d{2}|0)[1-9](?:\d{8})$"