首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >转义RegExp中的MSWord样式引号

转义RegExp中的MSWord样式引号
EN

Stack Overflow用户
提问于 2010-06-21 12:20:15
回答 1查看 470关注 0票数 1

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

代码语言:javascript
复制
string = string.replace(new RegExp("“", "g"), '"').replace(new RegExp("”", "g"), '"').replace(new RegExp("’", "g"), "'");

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-21 14:11:27

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

代码语言:javascript
复制
string = string.replace(new RegExp("\xe2\x80\x9c", "g"), '"').replace(new RegExp("\xe2\x80\x9d", "g"), '"').replace(new RegExp("\xe2\x80\x99", "g"), "'");

(我使用了带有HexEdit插件的Notepad++来获取代码)

编辑:

有关更多细节,请参阅http://www.regular-expressions.info/unicode.html

你的代码应该是(希望我没有混淆代码...):

代码语言:javascript
复制
string = string.replace(new RegExp("\u201c", "g"), '"').replace(new RegExp("\u201d", "g"), '"').replace(new RegExp("\u2019", "g"), "'");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3082094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档