此代码会在输入时阻止$%#或(吗?
var digitsOnly = /[0-9]/g;
var emailOnly = /[a-zA-Z0-9_.@-]/g;
var alphaOnly = /[a-zA-Z]/g;
var dateOnly = /[0-9\/]/g;
function restrictKeys(myfield, e, restrictionType) {
if (!e) var e = window.event
if (e.keyCode) code = e.keyCode;
else if (e.which) code = e.which;
var character = String.fromCharCode(code);
// if they pressed esc... remove focus from field...
if (code==27) { this.blur(); return false; }
// ignore if they are press other keys
// strange because code: 39 is the down key AND ' key...
// and DEL also equals .
if (!e.ctrlKey && code!=9 && code!=8 && code!=36 && code!=37 && code!=38 && (code!=39 || (code==39 && character=="'")) && code!=40) {
if (character.match(restrictionType)) {
return true;
} else {
return false;
}
}
}
最佳答案
这段代码会否阻塞$%#或(如我
类型?
不能。检测按下的按键是徒劳的,用户可以将文本粘贴或拖动到表单控件中,以使按键代码与输入的文本不匹配(或根本不触发按键事件)。另外,您只关心提交表单时的值,与此同时,它具有的任何值与您无关。
在提交时验证表单控件内容,以任何方式限制键盘输入对于用户来说是非常非常烦人的,并且容易被绕开。
关于javascript - 在正则表达式中需要帮助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5739732/