我在我的wordpress插件中构建自动链接功能,使用javascript和我有一个问题。匹配撇号和正确的单引号
输出帖子内容wordpress将撇号“'”转换为正确的单引号“'”。
例如在WordPress编辑后的内容如下:
<div class"post-content">This is content and don't skip this.</div>
而且在前端撇号被替换HTML实体为“'”:
This is content and don’t skip this.
然后我的JavaScript阵列包含应该链接的关键字。 我有问题,当我的关键字包含撇号,如:
"don't skip"
我有这样的代码:
var patern = new RegExp("\\bdon't skip\\b", "gi");
if (patern.test(node.data)) {
link_keyword(node, element, link);
}
其中node.data是:
node.data = "This is content and don’t skip this."
正如你可以看到关键字将不会在node.data中找到,因为在节点数据中是撇号而不是单引号。
我不想碰的内容,所以我试图用正确的单引号替换撇号在我的关键字“'”但后来我的关键词是这样的:
don�t skip
如果我替换撇号右单引号“’” HTML实体会是这样的:
don’t skip
因此,在这两种情况下TI将不匹配,也不会被替换。 因此,有没有人有想法如何处理追逐时,我的关键字有撇号和在后内容是相同的关键字使用正确的单引号,而不是撇号,如何找到匹配。
你可以试试:'var patern = new RegExp(“\\ bdon [''] t skip \\ b”,“gi”);' – anubhava 2015-02-24 14:56:47
你有一个字符编码问题。 – CBroe 2015-02-24 15:10:56
可能有用:https://wordpress.org/support/topic/please-give-us-the-option-to-turn-of-smart-quotes – 2015-02-24 15:18:31