在正则表达式中需要帮助

在正则表达式中需要帮助

此代码会在输入时阻止$%#或(吗?

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/

10-10 23:17