正则表达式返回false和true

时间:2012-04-10 02:00:28

标签: javascript regex

我创建了一个函数来检查输入文本字段是否有效,然后将类名附加到与某些css代码对应的元素上,或者如果它有效则不执行任何操作。

function checkInputText(inputType, elem, oldClass, classError) {
    var inputT = document.getElementById(elem);
    var oldClass = oldClass;
    var b = regex[inputType].test(inputT.value)
    if (!b) {
        inputT.className = classError + ' ' + oldClass;
        return false;
    } else {
        inputT.className = oldClass;
    }
}

但是,由于某些未知原因,当函数调用.test()函数时,它会在第一次为事件返回true,但是当您再次尝试它时,它将返回false。

完整代码在http://jsfiddle.net/assuredlonewolf/cscyB/2/

1 个答案:

答案 0 :(得分:5)

“与exec一样(或与exec结合使用),在同一个全局正则表达式实例上多次调用的测试将超过上一个匹配。” https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/test

您可以通过将lastIndex重置为0或在每次测试中创建新的正则表达式来解决此问题。