首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将“直引号”转换为“卷曲引号”

将“直引号”转换为“卷曲引号”
EN

Stack Overflow用户
提问于 2010-02-05 04:09:58
回答 4查看 11.2K关注 0票数 22

我有一个应用程序,它使用基于Javascript的规则引擎。我需要一种方法来转换成卷曲(或智能)引号常规直引号。只需为["]创建一个string.replace很容易,但这只会插入一个卷曲引号的大小写。

我能想到的最好的方法是用左卷曲的引号替换第一次出现的引号,然后用左卷曲的引号替换其他引号,其余的用右卷曲的引号替换。

有没有办法使用Javascript来实现这一点?

EN

回答 4

Stack Overflow用户

发布于 2010-03-25 12:29:04

你可能想看看Pandoc做了什么--显然,使用--smart选项,它可以正确地处理所有情况下的引号(包括‘tis和’the )。

我最近写了一个Javascript字体美化引擎,它做了很多事情,其中包括引用替换;我最终基本上使用了Renesis建议的算法,但目前有一个失败的测试,等待一个更聪明的解决方案。

如果您对抄袭我的代码(和/或根据您所做的工作提交补丁)感兴趣,请查看它:jsPrettifyjsprettify.prettifyStr可以满足您的需求。如果你不想处理闭包依赖,有一个可以独立运行的older version --它甚至可以在Rhino中工作。

票数 5
EN

Stack Overflow用户

发布于 2010-02-05 04:12:47

'foo "foo bar" "bar"'.replace(/"([-a-zA-Z0-9 ]+)"/g, function(wholeMatch, m1){
    return "“" + m1 + "”";
});
票数 4
EN

Stack Overflow用户

发布于 2010-11-29 12:43:34

下面的代码只是通过交替来改变每个引号(但是这个特定的例子会省略孤立的引号)。

str.replace(/\"([^\"]*)\"/gi,"“$1”");

只要你要文本化的文本没有因为双引号的不当使用而搞砸了,它就能完美地发挥作用。在英语中,引号从不嵌套。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2202811

复制
相关文章

相似问题

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