这个正则表达式一直在返回假,我不明白为什么?我有一个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)
if(regex.test(keyGLOB)) {
keyGLOB += key;
Run Code Online (Sandbox Code Playgroud)
在if子句中,keyGLOB仍然是一个空字符串,基于你之前在程序中定义的方式,我认为它会根据你的正则表达式返回false.