Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 允许&;防止正则表达式中的某些字符?_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 允许&;防止正则表达式中的某些字符?

Javascript 允许&;防止正则表达式中的某些字符?,javascript,jquery,regex,Javascript,Jquery,Regex,我想在一个列表中允许一些字符,而在另一个列表中阻止其他字符 允许这些: [A-Za-z0-9 ,.)(] [^~!@#$%^&*_+] 防止这些: [A-Za-z0-9 ,.)(] [^~!@#$%^&*_+] 这是失败的: 为什么会失败 (function($) { $.fn.extend({ standardOnly: function() { return this.each(function() {

我想在一个列表中允许一些字符,而在另一个列表中阻止其他字符

允许这些:

[A-Za-z0-9 ,.)(]
[^~!@#$%^&*_+]
防止这些:

[A-Za-z0-9 ,.)(]
[^~!@#$%^&*_+]
这是失败的:
为什么会失败

(function($) {
    $.fn.extend({
        standardOnly: function() {
            return this.each(function() {
                return $(this).keypress(function(e, text) {

                    var keynum;
                    var keychar;
                    var regEx;
                    var allowedKeyNums = [8, 9, 35, 36, 46]; // Backspace, Tab, End, Home, (Delete & period)

                    if (window.event) // IE
                        keynum = e.keyCode;
                    else if (e.which) // Netscape/Firefox/Opera
                        keynum = e.which;
                    else
                        keynum = e.keyCode

                    keychar = String.fromCharCode(keynum);
                    regEx = /[^#$]/ // Undesirable characters

                    // Test for keynum values that collide with undesirable characters
                    if ($.inArray(keynum, allowedKeyNums) > -1)
                        return regEx.test(keychar);

                    regEx = /[A-Za-z0-9 ,.)(][^~!@#$%^&*_+]/
                    return regEx.test(keychar);
                });
            });
        }
    });
})(jQuery);

您要测试的是一个有效字符后跟一个无效字符。只需查找允许的字符。如果失败,您就完成了,对吗?

您测试的是一个有效字符,后跟一个无效字符。只需查找允许的字符。如果失败,您就完成了,对吗?

只有当他锚定表达式
/^[allowed chars]+$/
@Felix:在这种情况下,不必每次调用keypress字符。只有当他锚定表达式
/^[allowed chars]+$/
@Felix:在这种情况下,不必每次调用keypress字符。