Regex:允许除某些选定字符之外的所有字符
Regex: allow everything but some selected characters
我想验证一个文本区域,但我没有得到regex(我花了一天时间和一堆教程才弄清楚)。
基本上,我希望能够允许一切(包括断线和战车),但可能是恶意的角色(那些会导致安全漏洞的角色)。由于很少有字符是不允许的,我认为创建黑名单比创建白名单更有意义。
我的问题是:Regex的标准"除此之外的一切"是什么?
我使用的是javascript和jquery。
我试过了,但不起作用(我知道,这很糟糕…):
var messageReg = /^[a-zA-Z0-9éèêëùüàâöïç'"'/'%'(').'?!,@$#§-_ 'n'r]+$/;
谢谢。
如果您想排除一组字符(例如,一些标点符号),您可以在字符集的开头使用^
运算符,在类似的正则表达式中
/[^.?!]/
这将匹配任何不是.
、?
或!
的字符。
您可以使用^
作为括号[]
内的第一个字符来否定其中的内容:
/^[^abc]*$/
这意味着:"从开始到结束,没有a
、b
或c
。"
正如Esailija所提到的,这对真正的安全性没有任何作用。
您提到的代码几乎是一个否定集,正如murgaroid99所提到的,^
位于括号内。因此,正则表达式将匹配该列表中没有的任何内容。但看起来您真的想去掉这些字符,所以您的regexp不需要被否定。
你的代码应该看起来像:
str.replace(/[a-zA-Z0-9éèêëùüàâöïç'"'/'%'(').'?!,@$#-_ 'n'r]/g, "");
也就是说,删除正则表达式中的所有字符。
然而,也就是说你不想保留a-zA-Z0-9
,你确定要把它们去掉吗?
此外,chrome不喜欢正则表达式中的§,您必须使用'x
和字符的十六进制代码
相关文章:
- Regex匹配除“”之外的所有字符;.js”;
- regex/ng模式接受某些字符
- Regex测试特殊字符
- jQuery-Regex以防止任何特殊字符
- RegEx只获取特殊字符,前后不获取任何字符
- Regex-从字符第N次出现到字符串末尾的匹配
- Javascript Regex选择每个非字母数字字符和空白
- 为什么regex只验证字段中的一个字符,而不是所有输入的字符
- Regex查找前面没有特定字符的字符
- Regex:允许除某些选定字符之外的所有字符
- regex中连字符的这种用法有效吗
- Javascript和RegEx用于删除特殊字符
- JavaScript Unicode Regex - 字符类中的顺序范围
- REGEX (javascript) - 允许字母数字字符中的特殊字符不在第一个位置
- Javascript-使用Regex获取两个字符之间的字符
- regex,用于修改单词末尾特定大小写的字符
- Javascript RegEx在字符后匹配单词
- JavaScript-Regex删除代码/特殊字符/数字等
- JS Regex只允许数字、分号和连字符
- 检查值是否具有给定字符RegEx