允许,避免正则表达式中出现某些字符
Allow & prevent certain characters in a regular expression?
我想允许一些字符出现在一个列表中,而不允许其他字符出现在另一个列表中。
允许这些:
[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);
你要测试的是一个有效的字符后面跟着一个无效的字符。只需查找允许的字符。如果失败了,你就完了,对吧?
相关文章:
- 不同浏览器中的空白字符正则表达式行为
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 用于匹配不带字符的单词的正则表达式
- 使用正则表达式匹配长度为六个字符的字母数字字符串
- 正则表达式搜索一个空格,后跟一个字符
- 为什么这个正则表达式不't匹配最后一个字母数字字符
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- javascript正则表达式来识别所有特殊字符
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- 如何使用正则表达式限制字符串的第一个字符
- 为什么以下正则表达式不删除 ## 字符
- 模仿负查找以匹配JavaScript正则表达式中没有紧跟特定字符的模式
- 匹配某个字符后所有文本的正则表达式是什么
- Javascript中的正则表达式,用于只有数字的字符串,并且不应在除数字以外的任何位置包含任何字符
- JavaScript正则表达式(带_-的字母数字字符)
- 使用正则表达式查找字符串中的不匹配字符
- 用于删除字符串中字符开头到结尾的正则表达式
- 使用 JavaScript 中的正则表达式替换大文本中两个字符之间的每个出现的字符串
- 排除组中的字符(正则表达式)
- Javascript替换:不要在连字符(正则表达式)上拆分单词