我想使用 validator 来验证一些 JSF 的字段。我正在寻找一种模式来验证只接受这些条件的手机号码:
1- 开头可以包含一个可选的“+”(开头的“+”之后不应有空格)。
2- 该数字可能包含一个到多个字符,来自:
- 数字字符[0-9]
- 连字符 (-)
- 空格
- 点(.)
我正在使用这种模式 (^\\+)?[0-9\\s-\\.]*
但它不起作用,特别是我无法意识到这种情况"开头的'+'后面不应该有空格"
我的代码:
public Boolean isValid(String str) throws PatternSyntaxException {
Pattern pattern = Pattern.compile("(^\\+)?[0-9\\s-\\.]*");
Matcher matcher = pattern.matcher(telFax);
boolean result = matcher.matches();
return result;
}
最佳答案
让我们逐条阅读您的问题:
开头可以包含一个可选的“+”(开头的“+”之后不应有空格)。
^\+?\S
然后该号码可能包含一个到多个字符,来自:
- 数字字符 [0-9]
- 连字符 (-)
- 空格
- 点(.)
您最终的正则表达式应如下所示:
^\+?[0-9-\.][0-9\s-\.]*
您的 Java 代码可能如下所示:
public Boolean isValid(String telFax) {
String regex = "^\\+?[0-9-\\.][0-9\\s-\\.]*";
return Pattern.compile(regex).matcher(telFax).matches();
}
关于java - 手机正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51744445/