【发布时间】:2015-01-23 11:24:49
【问题描述】:
我一直在使用正则表达式替换从文本框值中删除所有标点符号,并替换删除后留下的空格。它工作得很好,只是我意识到我需要它把. 和? 留在现场。这是我目前正在使用的。如何跳过这两个字符但删除所有其他字符?
脚本
var special = special.replace(/[^\w\s]|_/g, "").replace(/\s+/g, " ");
【问题讨论】:
标签: javascript regex
我一直在使用正则表达式替换从文本框值中删除所有标点符号,并替换删除后留下的空格。它工作得很好,只是我意识到我需要它把. 和? 留在现场。这是我目前正在使用的。如何跳过这两个字符但删除所有其他字符?
脚本
var special = special.replace(/[^\w\s]|_/g, "").replace(/\s+/g, " ");
【问题讨论】:
标签: javascript regex
只需将[^\w\s?.] 用于您的角色类。
【讨论】:
special.replace(/(?:[^\w?.]+|_+)+/g, " ") 或更高效:special.replace(/(?:[^\w?.]+_*|_+)+/g, " ") 删除第二个替换(用于重复空格)
special.replace(/(?=[\W_])(?:[^\w?.]+_*|_+)+/g, " ") 请参阅:regex101.com/r/tD7wB0/2
([…]+_*|_+)+ 看起来很糟糕