正则表达式无效

时间:2014-01-10 20:30:17

标签: javascript regex

这个正则表达式一直在返回false,我看不清楚为什么? 我有一个onkeydown事件触发了这个,我尝试了'w'键并且它不起作用。

var keyGLOB = '';

function editProductSearch (event) {
    console.log(keyGLOB);
    var key = String.fromCharCode(event.keyCode);
    if(event.keyCode == 8) {
        keyGLOB = keyGLOB.substring(0, keyGLOB.length -1);
        return false;
    }
    var regex = /^[a-zA-Z0-9]+$/;
    if(regex.test(key)) {
        if(regex.test(keyGLOB)) {
            keyGLOB += key;
            searchDb(keyGLOB.toLowerCase());
        } else {
            alert('letters and numbers only!');
            return false;
        }
    } else {
        alert('letters and numbers only!');
        return false;
    }
}

HTML:

<p><input id='product-edit-search' onkeydown='editProductSearch(event)'></p>

1 个答案:

答案 0 :(得分:5)

    if(regex.test(keyGLOB)) {
        keyGLOB += key;

if子句中,keyGLOB仍然是一个空字符串,基于你之前在程序中定义的方式,我相信这会根据你的正则表达式返回false。