正则表达式用于字母数字,删除,退格,空格,但不是特殊的字符

时间:2017-09-14 21:17:12

标签: javascript jquery regex

我使用正则表达式在文本框中允许字母数字但不知道如何允许退格和删除。现在用户无法删除,空格,退格。

这是代码

   $('#MemberBasicInfor_FirstName, #MemberBasicInfor_LastName').on('keypress', function (event) {
        var regex = new RegExp("^[a-zA-Z0-9]+$");
        var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
        if (!regex.test(key)) {
            event.preventDefault();
            return false;
        }
    });

请修改并允许删除,空格和退格。

2 个答案:

答案 0 :(得分:1)

这在很大程度上取决于您使用的浏览器,Chrome和Edge甚至不会为“删除”和“退格”触发keypress。对于Firefox keypress更频繁地被触发,即使像箭头键这样的东西也会触发它。

Backspace具有字符代码8,可以使用\b表示。空间只是一个空间。删除,箭头键,Home和End都会给出字符代码0. Firefox不考虑Ctrl或Alt,所以像Ctrl+v这样的东西只会被视为v,你需要如果这是一个问题,请调整您的代码以检查修饰键。同样,大多数浏览器允许通过其他不涉及按键的技术进行复制和粘贴,因此这些技术都不会受到影响。

所有这一切,我相信您需要的RegExp是这样的:

var regex = /[a-zA-Z0-9\b\0 ]/;

答案 1 :(得分:0)

Backspace不是RegExable,因此您最好使用ASCII代码。

int pid = -1;

If((pid = fork()) > 0)
{
     /* Parent process*/
     wait(NULL);
}
else if(pid == 0)
{
    /*Child process*/
    execv(....);

    exit (0);
}
else
{
    /*Error*/
    perror("fork()");
}
相关问题