javascript条件下的通配符整数

时间:2014-08-14 13:55:14

标签: javascript jquery

我有一个可以无限复制的表单部分,我试图为它创建一个验证条件(使用ajaxForm插件,虽然这方面是相对偶然的)。

条件看起来有点像这样:

if(formData[i].name == 'create-flight[fields][0][scheduled-departure-time]' && formData[i].value == ''){
    // Do stuff
}

请注意0中的create-flight[fields][0][scheduled-departure-time]。这可以是01,甚至是37。重要的是,我不需要知道,因为该函数动态处理所有内容,并且此条件在foreach中触发,因此将检查每个字段。有没有办法在这里添加通配符?即create-flight[fields]['+any_integer+'][scheduled-departure-time]

这通常会通过or运算符来满足,但它可能是任何号码,因此不实用。

3 个答案:

答案 0 :(得分:3)

你试过一个正则表达式吗?尝试

formData[i].name.match(/^create-flight\[fields\]\[[0-9]+\]\[scheduled-departure-time\]$/)

答案 1 :(得分:0)

您可以使用正则表达式对此进行测试:

var re = new RegExp("^create-flight\[fields\]\[[0-9]+\]\[scheduled-departure-time\]$");
if (re.test(formData[i].name)) {
    // ...
}

答案 2 :(得分:0)

我建议您使用正则表达式(http://www.w3schools.com/jsref/jsref_obj_regexp.asp)。

我会使用类似的东西:

/create-flight\[fields\]\[\d+\]\[scheduled-departure-time\]/

所以最终的代码应如下所示:

var patt = new RegExp(/create-flight\[fields\]\[\d+\]\[scheduled-departure-time\]/);
if(patt.test(formData[i].name) && formData[i].value == ''){
    // Do stuff
}