anton_63 Asked:2022-04-27 15:39:39 +0800 CST2022-04-27 15:39:39 +0800 CST 2022-04-27 15:39:39 +0800 CST 限制每行的位数 772 有这样的条件。 if (telNumber.matches("^\\d\\(\\d{3}\\)\\d{6}")) return true; 对于这样的输入字符串 0(501)234567,它显示为 true。但也有可能是括号开头前的第一个数字不能一个也不能多,但是一行中的总位数应该不超过10位,括号内应该是严格的3位数字。如何编写表达式来限制位数? java 1 个回答 Voted Best Answer Nowhere Man 2022-04-27T21:41:00+08:002022-04-27T21:41:00+08:00 您可以使用以下表达式"^(?=\\d+\\(\\d{3}\\)\\d+).{12}$"使用正向前瞻来检查格式: (?=\d+\(\d{3}\)\d+)- 第一个括号前的一位或多位数字,括号内的三位数字,括号后的一位或多位数字。 然后检查字符串.{12}的长度来控制长度 12 = 10 个数字 + 2 个括号: public static boolean isValidPhone(String phone) { return phone.matches("(?=\\d+\\(\\d{3}\\)\\d+).{12}"); } 在线演示 同理,可以先检查不带正则表达式的字符串长度,再检查格式: public static boolean isValidPhone(String phone) { return phone.length() == 12 && phone.matches("\\d+\\(\\d{3}\\)\\d+"); }
您可以使用以下表达式
"^(?=\\d+\\(\\d{3}\\)\\d+).{12}$"
使用正向前瞻来检查格式:(?=\d+\(\d{3}\)\d+)
- 第一个括号前的一位或多位数字,括号内的三位数字,括号后的一位或多位数字。然后检查字符串
.{12}
的长度来控制长度 12 = 10 个数字 + 2 个括号:在线演示
同理,可以先检查不带正则表达式的字符串长度,再检查格式: