这个正则表达式一直在返回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>
答案 0 :(得分:5)
if(regex.test(keyGLOB)) {
keyGLOB += key;
在 if子句中,keyGLOB仍然是一个空字符串,基于你之前在程序中定义的方式,我相信这会根据你的正则表达式返回false。