正则表达式无效

use*_*607 0 javascript regex

这个正则表达式一直在返回假,我不明白为什么?我有一个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;
    }
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<p><input id='product-edit-search' onkeydown='editProductSearch(event)'></p>
Run Code Online (Sandbox Code Playgroud)

Jos*_*eam 5

    if(regex.test(keyGLOB)) {
        keyGLOB += key;
Run Code Online (Sandbox Code Playgroud)

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

  • 只需使文本可选:`/ ^ [a-zA-Z0-9]*$ /`(`*`而不是`+`). (2认同)