好的,我有以下问题。我使用jquery来测试带有正则表达式的字符串。它工作得很好,但...... ....
在荷兰,邮政编码是4位数后跟2个字符,例如1234AB。
现在我使用以下正则表达式来查找:[0-9]{4}[A-Z]{2}
。
但是当有人输入1234AB + 948203848时。它也回归真实。而且我不想要那个!如果不是4个数字后跟2个字符,我怎么能让它返回假?
提前致谢。
答案 0 :(得分:3)
使用主播^
和$
。所以你的正则表达式会变成:
/^\d{4}[A-Z]{2}$/
答案 1 :(得分:2)
只需使用锚点来表示单词的开头(^
)及其结尾($
):
var patt = new RegExp("^[0-9]{4}[A-Z]{2}$");
^ ^
根据您的评论,您还希望将输入大写。为此,您可以使用.toUpperCase()
:
测试---> JSBIN
$(document).ready(function(){
$('[name=postcode]').keyup(function(){
var str = $(this).val().toUpperCase();
var patt = new RegExp("^[0-9]{4}[A-Z]{2}$");
var res = patt.test(str);
console.log(res);
});
});
或者,你可以使用^[0-9]{4}[a-zA-Z]{2}$
(注意[a-zA-Z]
部分)检查四个字母,无论是大写还是小写。