Javascript 用更好的引号替换引号字符

Javascript 用更好的引号替换引号字符,javascript,html,Javascript,Html,我有一个网页,我想用好看的引号替换所有标准引号字符“ “你好,世界” 它将被替换为 “你好,世界” 在标记中,显示外观更好的“卷曲”引号 这两个HTML特殊字符是成对的,因为它们“打开”和“关闭”一个引号块,而不是一个普通的双破折号,这正是我努力的地方——简单地用“abc”替换所有引号很容易,但我想这样做,这样打开/关闭对就得到了尊重。如果您有一个类似test“abc”test的字符串abc“,您可以通过查看前面有多少个”来检查每个“是否应该是打开或关闭的: 如果是偶数,则应为,否则为 var

我有一个网页,我想用好看的引号替换所有标准引号字符

“你好,世界”

它将被替换为

“你好,世界”

在标记中,显示外观更好的“卷曲”引号


这两个HTML特殊字符是成对的,因为它们“打开”和“关闭”一个引号块,而不是一个普通的双破折号,这正是我努力的地方——简单地用
“abc”替换所有引号很容易,但我想这样做,这样打开/关闭对就得到了尊重。

如果您有一个类似
test“abc”test的字符串abc“
,您可以通过查看前面有多少个
来检查每个
是否应该是打开或关闭的:

如果是偶数,则应为
,否则为

var str = 'test "abc" test "abc"';
var splitted = str.split('"');
var result = '';
for(var i = 0; i < splitted.length; i++) {
    result += splitted[i] + ( i % 2 == 0 ? '&ldqou;' : '&rdquo;' );
}
result = result.substring(0, result.length - 7); // remove last appended &ldquo;
var str='test“abc”test“abc”;
var splitted=str.split(“”);
var结果=“”;
对于(变量i=0;i
如果您有一个字符串,如
test“abc”test“abc”
,您可以通过查看前面有多少个
来检查每个
是否应该是一个开头或结尾:

如果是偶数,则应为
&ldquo,否则
&rdquo

var str = 'test "abc" test "abc"';
var splitted = str.split('"');
var result = '';
for(var i = 0; i < splitted.length; i++) {
    result += splitted[i] + ( i % 2 == 0 ? '&ldqou;' : '&rdquo;' );
}
result = result.substring(0, result.length - 7); // remove last appended &ldquo;
var str='test“abc”test“abc”;
var splitted=str.split(“”);
var结果=“”;
对于(变量i=0;i
我可能在这里遗漏了一些明显的东西,但我认为下面的正则表达式解决方案会起作用-

subject = 'test "abc" test "abc"';
result = subject.replace(/"([A-Za-z ]*)"/ig, "&ldquo;$1&rdquo;");
alert(result);
如果您使用的是PHP,那么您可以用PHP编写一些类似的代码-(不过我的PHP技能有些欠缺!下面的代码是用RegEx Buddy生成的,因此没有经过测试,可能需要更改)

或者,您可以使用PHP将内容加载到DIV中,然后使用JavaScript更改DIV内容,下面是一些JQuery,可以完成这项工作-

$("#contentdiv").text($("#contentdiv").text().replace(/"([A-Za-z ]*)"/ig, "&ldquo;$1&rdquo;"));

有一个jsfiddle演示了上面的JQuery。

我可能在这里遗漏了一些明显的东西,但我认为下面的正则表达式解决方案是可行的-

subject = 'test "abc" test "abc"';
result = subject.replace(/"([A-Za-z ]*)"/ig, "&ldquo;$1&rdquo;");
alert(result);
如果您使用的是PHP,那么您可以用PHP编写一些类似的代码-(不过我的PHP技能有些欠缺!下面的代码是用RegEx Buddy生成的,因此没有经过测试,可能需要更改)

或者,您可以使用PHP将内容加载到DIV中,然后使用JavaScript更改DIV内容,下面是一些JQuery,可以完成这项工作-

$("#contentdiv").text($("#contentdiv").text().replace(/"([A-Za-z ]*)"/ig, "&ldquo;$1&rdquo;"));

有一个JSFIDLE演示了上面的JQuery。

qoutes前后是否有空格?然后,对于几乎所有普通的文本编辑器,您都可以找到空格,并用空格替换空格&ldquo;还有“空格加空格”。@Tim:看来我比我最初想象的聪明多了——谢谢你的建议!qoutes前后都有空格吗?那么,几乎所有普通的文本编辑器都可以找到空格,并用空格替换空格;及“空间与”;空间。@Tim:看来我比我最初想象的要聪明得多-谢谢你的建议!谢谢你,皮条客。这里的问题是,我想替换整个HTML文档中引号的所有实例,因此标记中的引号将被替换,留下一个破损的页面。@JamWaffles:这很棘手,因为无法轻松确定它是否是HTML标记的一部分。您需要某种HTML解析器,但它会更复杂。非常感谢PIMPDP。这里的问题是,我想替换整个HTML文档中引号的所有实例,因此标记中的引号将被替换,留下一个破损的页面。@JamWaffles:这很棘手,因为无法轻松确定它是否是HTML标记的一部分。您需要某种HTML解析器,但它会更复杂。谢谢。这是否适合放回HTML文档中,以便我可以在页面中显示这些新引用?您的页面是如何获得服务的?它是一个静态HTML页面还是由php等呈现?不幸的是,php。如果有一种方法可以改变PHP输出流,我很乐意这样做,前提是不会对性能造成重大影响。谢谢。这是否适合放回HTML文档中,以便我可以在页面中显示这些新引用?您的页面是如何获得服务的?它是一个静态HTML页面还是由php等呈现?不幸的是,php。如果有一种方法可以改变PHP输出流,我很乐意这样做,前提是不会对性能造成重大影响。