2017-01-21 32 views
1

我正在嘗試編寫一個驗證方法,該驗證方法將驗證是否有人在錯誤中輸入了許可證編號,我已經搜索並發現了一些想法,但我只是不能得到我想要的結果。正確的格式應該是兩個字母加7個號碼,這兩個字母和7個號碼可能會改變,但格式應保持相同〔實施例:驗證一個文本字符串以匹配java中的每一種確定格式

AB1234567

如果用戶輸入的此值,則布爾將是真實的,如果他們進入說:

A12345678或AB12345Y7甚至不匹配正確的長度,如AB10

它會返回false,我試過的代碼在下面,任何幫助或推動正確的方向表示讚賞。

public boolean validateLicense() 
{ 
    boolean retValue = false; 
    if ((this.licenseNumber.matches("[a-zA-Z]{2}\\d{6}"))) 
     retValue = true; 
    return retValue; 
} 
+2

你說的7個號碼,但有d {6} – racraman

回答

2

第一件事是你說了七個數字,但是在正則表達式中有d {6}。第二件事是,如果將其更改爲: [a-zA-Z] {2} \ d {7} 它也會與該字符串匹配: kjasd; lkfjAB1234567jklsdfa。 你的正則表達式必須是: ^ [A-ZA-Z] {2} \ d {7} $


^- 字符串 $的開始 - 字符串的末尾

代碼:

public boolean validateLicense() 
{ 
boolean retValue = false; 
if ((this.licenseNumber.matches("^[a-zA-Z]{2}\\d{7}$"))) 
    retValue = true; 
return retValue; 
} 
+2

雖然使用^和$通常是真實的正則表達式,正在這裏不需要他們。 String.matches的行爲與Matcher.matches完全相同,匹配整個字符串(有效地爲你添加^和$) – racraman

+0

謝謝,我仍然在努力學習關於使用正則表達式的一切,我想我仍然有有一點要走,我不會想出你提供的字符串建議的開始和結束。也是,我不敢相信我沒有看到我的第一個錯誤是我的位數已關閉,你的聖人,再次謝謝你! – Newb2Java

+0

有趣的@racraman所以它沒有關係,如果我有它或它沒有,它執行相同的功能? – Newb2Java

相關問題