^(?![\\s\\S]*(\\d{16})|[\\s\\S]*(\\d{9}))[\\s\\S]*
上述正则表达式不允许字符串中的数字大于10位。 例如,如果用户输入测试1234567891.该文本是有效文本。我们应该允许用户输入此文本。 用户不应输入9位数字或16位数字。 例如,测试123456789应无效。如何修改正则表达式。
答案 0 :(得分:6)
答案 1 :(得分:1)
请勿使用正则表达式进行此类检查。 Java在字符串上有.length()
:
private static final Pattern DIGITS = "\\d+";
public boolean inputOK(String input)
{
Matcher m = DIGITS.matcher(input);
int len;
while (m.find()) {
len = m.group().length();
if (len == 9 || len == 16)
return false;
}
return true;
}