反向引用每个角色

时间:2011-10-02 00:53:39

标签: javascript regex string

为了简单起见而且学习新东西,请不要建议使用两个单独的替换功能。我知道这是一个选择,但我宁愿知道如何做到这一点(或者如果不可能)。

'<test></test>'.replace(/<|>/g,'$&'.charCodeAt(0))

这是我到目前为止所得到的。正如您所知,这个示例代码是另一段代码在仍然使用innerHTML时转义HTML实体(因为我打算包含一些HTML实体,例如小图像,所以请不要建议{{1} })。

由于我正在尝试替换textContent<,因此问题是将每个人都转换为各自的字符代码。由于正则表达式允许这个“OR”条件以及每个条件的反向引用,我希望有一种方法可以在每个字符被替换时获得每个字符的引用。 >将返回$&(因为它们已按此顺序替换),但我不知道如何在替换它们时获取它们并将其字符代码用于HTML实体。问题是,如果有的话,我不知道在这种情况下应该使用什么。

如果这个解释不够清楚,我希望它是这样的(这显然不会起作用,它最能传达我的意思):

假设<><>是要替换的字符的索引,

x

希望这更有意义。那么,这在某种程度上是否可行?

1 个答案:

答案 0 :(得分:2)

'<test></test>'.replace(/[<>]/g,function(a) {return '&#'+a.charCodeAt(0)+';';});

我把这些字符放在方括号中(不知道它的名称是什么)。这样你可以添加你想要的任何字符。

以上将返回:

&#60;test&#62;&#60;/test&#62;