【发布时间】:2011-04-10 04:43:54
【问题描述】:
我正在使用 jQuery,以及一个非常简单的脚本来用它们的“智能”对应物替换引号、撇号和双破折号:
function smarten(a) {
a = a.replace(/(^|[-\u2014/(\[{"\s])'/g, "$1\u2018"); // opening singles
a = a.replace(/'/g, "\u2019"); // closing singles & apostrophes
a = a.replace(/(^|[-\u2014/(\[{\u2018\s])"/g, "$1\u201c"); // opening doubles
a = a.replace(/"/g, "\u201d"); // closing doubles
a = a.replace(/--/g, "\u2014"); // em-dashes
return a
};
我将其用作TwitterJS 的回调,它解析链接并生成如下块:
<ul> <li>Here's a link! <a href="http://www.foobar.com">http://www.foobar.com</a></li> </ul>
问题是,如果我这样做:
$('#tweet li').html(smarten($('#tweet li').html()))
它会破坏链接,如果我这样做:
$('#tweet li').html(smarten($('#tweet li').text()))
它完全丢弃它们。
有没有一种智能、可靠的方法来只抓取文本(如果需要,也可以从 <a> 标签中提取),“smarten”,然后将其放回去,而不干扰 TwitterJS 的链接解析?
【问题讨论】:
标签: javascript jquery twitter smart-quotes