我知道有很多与验证相关的问题,但是,在看了这么多之后,我似乎无法解决这个问题。
我正在尝试将邮政编码与我在 SO 上找到的正则表达式进行匹配。 fiddle 说邮政编码无效,但当我在 rubular.com 上测试正则表达式时,它工作正常
JS fiddle https://jsfiddle.net/aeqawadv/1/
<div id="test"></div>
<script type="text/javascript">
var string = "SK13 6NT";
var ukPostcode = new RegExp(/^[A-Z]{1,2}[0-9]{1,2} ?[0-9][A-Z]{2}$i/);
if (ukPostcode.test(string)) {
document.getElementById("test").innerHTML="Valid";
} else {
document.getElementById("test").innerHTML="Invalid";
}
</script>
有什么想法吗?我也尝试过 match() 而不是 test()
编辑
刚刚意识到我使用的是 rubular 而不是 scriptular,但是结果仍然相同
最佳答案
在美元符号末尾有一个“i”。
var ukPostcode = new RegExp(/^[A-Z]{1,2}[0-9]{1,2} ?[0-9][A-Z]{2}$i/);
应该是
var ukPostcode = new RegExp(/^[A-Z]{1,2}[0-9]{1,2} ?[0-9][A-Z]{2}$/);
或者(如果您的目标是不区分大小写)
var ukPostcode = new RegExp(/^[A-Z]{1,2}[0-9]{1,2} ?[0-9][A-Z]{2}$/i);
关于javascript - 验证正则表达式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29420617/