2011-10-15 31 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]

相关问题