这是我用来验证英国邮政编码的正则表达式。
它很好用,除了它只允许大写后代码:
WA1 6EU有效,wa1 6eu不是 - 但它应该是!
如何使表达式不区分大小写?
^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$
更新:我正在使用DEVXPRESS asp.net控件,它在某些控件上可以使用正则表达式验证。 : 目前不允许使用不区分大小写的密钥:http://www.devexpress.com/Support/Center/Question/Details/Q500302
我修改了下面建议的表达式,但现在大写的邮政编码无效 - 它们之前是:
^([A-PR-UWYZ0-9][a-pr-uwyz0-9][A-HK-Y0-9][a-hk-y0-9][AEHMNPRTVXY0-9][aehmnprtvxy0-9]?[ABEHMNPRVWXY0-9][abehmnprvwxy0-9]? {1,2}[0-9][ABD-HJLN-UW-Z][abd-hjln-uw-z]{2}|GIR 0AA)$
答案 0 :(得分:2)
您只需启用不区分大小写的标记i
将表达式包装为:
/yourexpression/i
在http://regex101.com/r/uX5rK9/1
上查看或者您可以在将字符串传递给RegExp引擎之前使用ToUpperCase()
。
修改强>
如果您无法设置不敏感的匹配
,那么这个应该可行 ^([A-Pa-pR-Ur-uWwYyZz0-9][A-Ha-hK-Yk-y0-9][AaEeHhMmNnPpRrTtVvXxYy0-9]?[AaBbEeHhMmNnPpRrVvWwXxYy0-9]? {1,2}[0-9][AaBbD-Hd-hJjLlN-Un-uW-Zw-z]{2}|(G|g)(I|i)(R|r) 0[Aa]{2})$
答案 1 :(得分:0)
选项1:将[A-PR-UWYZ0-9]
更改为[A-PR-UWYZa-pr-uwyz0-9]
,将其他[...]
更改为{{1}}。无论发动机如何,这都有效。
选项2:打开正则表达式引擎忽略大小写标志。您没有使用编程语言标记您的帖子,因此我们无法告诉您如何执行此操作,因为它因语言而异。