jquery中的正则表达式只允许一个匹配

时间:2014-12-12 14:09:53

标签: javascript jquery regex

好的,我有以下问题。我使用jquery来测试带有正则表达式的字符串。它工作得很好,但...... ....

在荷兰,邮政编码是4位数后跟2个字符,例如1234AB。 现在我使用以下正则表达式来查找:[0-9]{4}[A-Z]{2}

但是当有人输入1234AB + 948203848时。它也回归真实。而且我不想要那个!如果不是4个数字后跟2个字符,我怎么能让它返回假?

提前致谢。

JSBIN

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]部分)检查四个字母,无论是大写还是小写。