使用正则表达式Jquery在字符串中搜索

时间:2015-06-26 07:31:40

标签: jquery regex string

我是jquery的新手,我正在制作一个项目。我已经在互联网上搜索并检查了stackoverflow中的其他一些东西,但我还没有看到符合我需要的东西。

所以我有一个邮政编码包含字段,可以有一个或多个邮政编码。 防爆。 CC,DD,AACC如果只有一个。从我需要的那些输入 比较具有所有邮政编码包含的字符串变量。 防爆。 var postcodes_include = "CC,AA,DD,KK,BB";和输入字段,如果用户只有AA,BB类型,它会搜索postcodes_include,并会发现它是否匹配。

谢谢!

2 个答案:

答案 0 :(得分:1)

首先将postcode_incluedes拆分为数组。拆分输入,循环它们,并测试它们是否在数组中。不需要正则表达式。

function validate_postcodes(postcodes_include) {
    var postcodes_include_array = postcodes_include.split(',');
    var postcodes = $("#postcodes").val().split(',');
    for (var i = 0; i < postcodes.length; i++) {
        if ($.inArray(postcodes[i], postcodes_include_array == -1) {
            alert("Postcode " + postcodes[i] + " is not allowed");
            return false;
        }
    }
    return true;
}

答案 1 :(得分:0)

此答案不需要正则表达式。您可以使用字符串.split()和.search()来实现您想要的效果:

var postcodes_include = "CC,AA,DD,KK,BB"
var known_postcodes = []
var unknown_postcodes = []

$(document).ready(function(){

    $('form').submit(function(e){

        e.preventDefault()
        // split the input to get all codes
        var inputSplit = $('input').val().split(",")
        // iterate all the input codes
        for(c in inputSplit){
            var code = inputSplit[c]
            if(postcodes_include.search(code) >= 0){
                known_postcodes.push(code)
            }else{
                unknown_postcodes.push(code)
            }
        }
        alert(known_postcodes);
        alert(unknown_postcodes);
    })
})

HERE a workin fiddle