0

我的目标是将任何内容用引号括在具有特定 ID 的 div 中。

例如,如果我有一个这个字符串:

Bananas are "green", "pineapples" are blue.

我想得到这个:

Bananas are <div id="mydivname">"green"</div>, <div id="mydivname">"pineapples"</div> are blue.

问题是我不知道括号中到底是什么,这没关系,我只是希望它被正确地包裹在字符串中。

我想出了这样的代码:

var string = $('#somediv').html().replace(/\".*?\"/g,'<div id="mydivname">' + regexp + '</code>');
$('#somediv').html(string)

我的问题是我无法获得这个元素的正则表达式,我可以用一些值替换,但我想将它包装在<div>'s.

如何从 .replace 中获取匹配的 regExp 以将其用作 replaceText?

4

1 回答 1

1

您可以使用对捕获组的引用

$('#somediv').html().replace(/(".*?")/g, '<div class="foo">$1</div>');

或替换功能:

$('#somediv').html().replace(/".*?"/g, function(match) {
    return '<div class="foo">' + match + '</div>';
});

小心替换 HTML 中的内容。这将破坏#somediv带有引用属性的子级。

如果可以,请使用此替换功能.text()代替.html()或迭代文本节点。

于 2013-05-12T17:57:54.213 回答