英国邮政编码的JavaScript正则表达式
我一直在使用此正则表达式验证我的联系人表单中的英国邮政编码,效果很好:英国邮政编码的JavaScript正则表达式,javascript,regex,Javascript,Regex,我一直在使用此正则表达式验证我的联系人表单中的英国邮政编码,效果很好: /^([a-zA-Z]){1}([0-9][0-9]|[0-9]|[a-zA-Z][0-9][a-zA-Z]|[a-zA-Z][0-9][0-9]|[a-zA-Z][0-9]){1}([ ])([0-9][a-zA-z][a-zA-z]){1}$/ 但是,我现在需要对其进行修改,以验证是否有空格,例如GL50 1HX或GL501HX 有一个简单的解决方法吗?将空格放在条件正则表达式exp:[]要在正则表达式中指定可选空格,
/^([a-zA-Z]){1}([0-9][0-9]|[0-9]|[a-zA-Z][0-9][a-zA-Z]|[a-zA-Z][0-9][0-9]|[a-zA-Z][0-9]){1}([ ])([0-9][a-zA-z][a-zA-z]){1}$/
但是,我现在需要对其进行修改,以验证是否有空格,例如GL50 1HX或GL501HX
有一个简单的解决方法吗?将空格放在条件正则表达式exp:
[]
要在正则表达式中指定可选空格,请在其后加一个问号
例如:
^[A-Z]{2}\d{2} ?\d[A-Z]{2}$
问号是{0,1}
限定符的缩写形式,即零次或一次:
^[A-Z]{2}\d{2} {0,1}\d[A-Z]{2}$
以下是与英国邮政编码匹配的regexp:
^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {0,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR ?0AA)$
您一直在使用什么正则表达式?所以您有一个正则表达式,但在您的问题中没有显示它?发布代码!我不知道什么是英国邮政编码,但对于你的例子来说,这个
“GL501HX”。测试(//[A-Z]{2}[0-9]{3}\s?[A-Z]{2}$/I)
应该可以工作。temp=pcode.replace(//g,”)
然后测试(或使用)temp?好的,为了你的更新,把?
放在([])
之后,它就可以工作了。这是一个字符类,不是条件类。它的意思是“这里必须有以下字符之一:空格(列表末尾)”。问题是明确要求允许空格是可选的。这需要一个空格。修复了空格选项谢谢你的回答,这实际上在我的js中导致了一个错误-无效的量词,我终于用一个简单的问号解决了这个问题,谢谢!谢谢你,这解决了我的问题-就这么简单,呃,为所有感兴趣的人更新了正则表达式-/^([a-zA-Z]){1}([0-9][0-9]|[a-zA-Z][0-9][a-zA-Z][0-9][0-9]|[a-zA-Z][0-9]){1}([])([0-9][a-zA-Z][a-zA-Z][a-zA-Z]){1$/我不会使用这个解决方案:[a-zA-Z][a-Z][a-UK 1}当许多首字母开头需要两个字符时,例如N1、W1、B1etc@Quango:很抱歉给你带来了困惑。答案并不是说模式应该适合英国邮政编码,它只是展示了如何在模式中放置可选空格。