创建javascript正则表达式以使用白名单替换字符
Creating javascript regex tp replace characters using whitelist
我正在尝试创建一个正则表达式,它将替换不在指定白名单中的所有字符(字母、数字、空格、括号、问号和解释标记)
这是代码:
var regEx = /^[^('s|'w|'d|()|?|!|<br>)]*?$/;
qstr += tempStr.replace(regEx, '');
它怎么了?
感谢
- 锚点是错误的-它们只允许正则表达式匹配整个字符串
- 惰性量词是错误的-您不希望正则表达式匹配0个字符(如果您删除了锚点)
- 括号和管道字符是错误的——在字符类中不需要它们
<br>
错误-无法匹配字符类中的特定子字符串'd
是多余的,因为它已经包含在'w
中了(谢谢Alex K.!)- 您缺少全局修改器以确保可以执行多个替换
- 您应该使用
+
而不是*
,以免将大量空字符串替换为它们本身
尝试
var regEx = /[^'s'w()?!]+/g;
并独立处理<br>
s(在应用正则表达式之前,否则将删除括号)。
您需要使用g
(全局)修饰符:
var regEx = /^[^('s|'w|'d|()|?|!|<br>)]*?$/g; // <-- `g` goes there
qstr += tempStr.replace(regEx, '');
这允许您的表达式多次匹配。
相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 我如何找到一个句子中的所有空格并替换忽略它们
- 如何用更合适的内容替换document.write
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 用空格替换下划线PHP
- str.split(someString).join(someOtherString)是否等效于替换
- 使用javascript的图像替换循环
- window.location替换并传递URL历史记录条目中的变量
- 替换标记中的属性
- 指令的模板必须只有一个根元素:With restrict E&替换true
- AngularJs对ng消息的自定义替换
- 用超链接替换URLS
- 用cdata标记替换脚本标记
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 在javascript中,I'我很难弄清楚如何让regex只替换捕获而不替换匹配
- 替换url中变量的值
- javascript正则表达式可以替换特殊字符,但允许使用白名单,使用xregexp
- 创建javascript正则表达式以使用白名单替换字符
- 替换中的白名单