2011-10-15 36 views
0

我想寫一個正則表達式來驗證匹配「AAAAA9999A」的字符串格式。前五位數字是「A-Za-z」,接下來的4位數字是數字,最後一位數字是「A-Za-z」。如何使用正則表達式來識別泛數?

對於這一點,我寫我的正則表達式爲[A-Za-z]{5}\d{4}[A-Za-z]{1}

當然,這是行不通的。

validates_format_of :pan_number, :with => [A-Za-z]{5}\d{4}[A-Za-z]{1}, :message => 'is not in a format of AAAAA9999A' 

我在做什麼錯了?

此外,我希望第四個字符是C,P,H,F,A,T,B,L,J,G中的一個,而不是A-Z。

+0

什麼不行?你的正則表達式對我來說似乎是正確的。 – Toto

+0

註釋編號範圍是:0001到9999 –

回答

1

你會想把它寫成一個實際的正則表達式(也就是說,你錯過了表達式中的/)。

嘗試使用這條線:

validates_format_of :pan_number, :with => /[a-z]{3}[cphfatblj][a-z]\d{4}[a-z]/i, :message => 'is not in a format of AAAAA9999A' 

這也證實了第四個字符爲C,P,H,F,A,T,B,L,J,G中的一個,它使用的情況下對正則表達式不敏感的標誌(/i),所以你不必寫[A-Za-z]

相關問題