2014-06-29 81 views
1

我在java中的一個文本字段上創建了一個驗證器,用於輸入。輸入字段的長度應爲10,值應爲1-9之間的任何數字。美中不足的是,輸入應該使用相同的字符只有10倍......所以有效值應該是這樣的,如下所示:在Java中檢查字符串中的字符

1111111111 
2222222222 
.... 
9999999999 

但如果輸入的文本是像111111112,這應該被視爲無效項。

目前我使用String.matches(「^ [0-9] + $」)來檢查輸入值是否有效,但仍然接受111111112有效。檢查字符串的所有10個字符是否相同的正確方法是什麼?

回答

4

可以使用回引用做到這一點:

String.matches("^([0-9])\1{9}$") 

或:

String.matches("^([0-9])\\1{9}$") 

DEMO

這只是一條線是所有一樣精確匹配10位數字。

+0

這很快,sshashank! +1 :) – zx81

+0

@ zx81,謝謝。 :)。我們再次見面 – sshashank124

+0

總是很高興,我知道你是個紳士。 :) – zx81