我的目标是将任何内容用引号括在具有特定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>
中。
如何从.replace获取匹配的regExp以将其用作replaceText?
答案 0 :(得分: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()
,或使用此替换函数迭代文本节点。