1

目前我有一个使用正则表达式来检测英国邮政编码的 JavaScript 程序。目前它只是在警报中显示它们。我目前正在努力检测带有空格的邮政编码。例如 SW12 5BV, BR3 8DD 还需要接受 DE148NV, JN24HH 等不带空格的 Postcodes。当前正则表达式代码:

var postcodePattern = /[A-Z]{1,2}[0-9]{1,2} ?[0-9][A-Z]{2}/i;
                var resultPost = postcodePattern.test(words[i]);
                if(resultPost)  {   
                alert("Postcode detected: " + words[i]);

我还尝试了其他各种英国邮政编码正则表达式,但均无济于事。例子

//var postcodePattern = /^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {0,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR ?0AA)$/

我还有一个功能,它在影响以前的正则表达式的正则表达式发生后删除所有 HTML 标签。

removeHTMLTags: function(aString){

        var strInputCode = aString;

        var strTagStrippedText = strInputCode.replace(/<\/?[^>]+(>|$)/g, " ");
        strTagStrippedText = strTagStrippedText.replace(/&nbsp/g," ");

        //Remove some escape characters
        strTagStrippedText = strTagStrippedText.replace(/\(|\)|\{|\}|\[|\]|\?|\*|\+|\||\//ig," ");

        //Replace multilple white spaces with single white space
        strTagStrippedText = strTagStrippedText.replace(/\s+/g," ");

        return strTagStrippedText; },

任何帮助将不胜感激。

4

1 回答 1

1

就像把你的空间放在一个角色类中一样简单?我假设您只允许基于第二个代码块中的重新格式化代码的单个空格。

var postcodePattern = /[A-Z]{1,2}[0-9]{1,2}[ ]{0,1}[0-9][A-Z]{2}/i;
            var resultPost = postcodePattern.test(words[i]);
            if(resultPost)  {   
            alert("Postcode detected: " + words[i]);

根据评论,您也在此处将输入拆分为空格:

bodyContentsStrippedTags.split(/\s+|\,|\&|\||\/|\?|\!|\:|;|"/);

使用拆分正则表达式中的 \s+ 。这意味着带有空格的邮政编码作为两个单独的数组项而不是单个字符串传递给您的正则表达式。

于 2013-02-11T20:12:14.700 回答