javascript - 在 RegEx 中转义 MS Word 样式引号

标签 javascript regex

我需要转换粘贴到文本区域的字符串,这样,如果它们是从 MS Word 粘贴的,Word 喜欢使用的奇怪的引号和撇号将被转换为常规的单引号和双引号。不幸的是,当我保存时,我的文本编辑器似乎已经转换了此类引号,因此我创建的任何正则表达式似乎都变得困惑。所以像这样

string = string.replace(new RegExp("“", "g"), '"').replace(new RegExp("”", "g"), '"').replace(new RegExp("’", "g"), "'");

似乎不起作用。 (我什至不知道它是否会正确发布在这里)

如何构造正则表达式来使用所有“常规”字符查找这些引号?大概是转义序列?我更喜欢避免使用 RegExp“文字”表示法,即使创建对象速度较慢。

最佳答案

尝试获取要删除的字符的 ASCII 代码并使用它而不是字符本身:

string = string.replace(new RegExp("\xe2\x80\x9c", "g"), '"').replace(new RegExp("\xe2\x80\x9d", "g"), '"').replace(new RegExp("\xe2\x80\x99", "g"), "'");

(我使用Notepad++和HexEdit插件来获取代码)

编辑:
参见http://www.regular-expressions.info/unicode.html了解更多详情。
你的代码应该是(希望我没有混合代码......):

string = string.replace(new RegExp("\u201c", "g"), '"').replace(new RegExp("\u201d", "g"), '"').replace(new RegExp("\u2019", "g"), "'");

关于javascript - 在 RegEx 中转义 MS Word 样式引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3082094/

相关文章:

javascript - angularjs防止错误冒泡到httpinterceptor

javascript - 模拟可点击的输入表单

javascript - 在 jQuery 中遍历表格元素

Javascript 正则表达式表示年份

javascript - 如何在我的正则表达式中允许 `.`?

regex - 使用 _escaped_fragment_ 获取 .htaccess 以引导 googlebot 时出错

javascript - WordPress热门帖子如何显示帖子之类的类别?

regex - BASH:是否有一种简单的方法来检查字符串是否是有效的 SHA-1(或 MD5)散列?

java - 正则表达式提取带有括号的单词之间的数据

php - 使用wordpress处理ajax请求响应