我正在为java中的一个文本字段创建输入验证器。输入字段的长度应为10,值应为1-9之间的任意数字。问题是,输入应使用相同的字符仅10x ...所以有效值应如下所示:
1111111111
2222222222
....
9999999999
但是如果输入的文本类似于111111112,则应将其视为无效条目。
目前我使用String.matches(“^ [0-9] + $”)来检查输入的值是否有效,但仍然接受111111112作为有效值。检查字符串的所有10个字符是否相同的正确方法是什么?
答案 0 :(得分:5)
您可以使用反向引用来执行此操作:
String.matches("^([0-9])\1{9}$")
或:
String.matches("^([0-9])\\1{9}$")
这只匹配 all 相同行中的10个数字。