我輸入的是:無法理解爲什麼代替()是不是在這裏工作
'<div><strong>test</strong><div><strong>kkk</strong></div><div><strong>111</strong></div></div>'
和輸出必須是:
'<div><strong>test</strong><div><strong>kkk</strong></div><div>111</div></div>'
(<strong>
標籤從111
解開)
這是我到目前爲止:
var input = '<div><strong>test</strong><div><strong>kkk</strong></div><div><strong>111</strong></div></div>';
var effect = 'strong', // dynamic
selectedText = '111'; // dynamic
var regex = new RegExp('<' + effect + '>.*' + selectedText + '.*<\/' + effect + '>');
if(regex.test(input)){
console.log('replacing');
input = input.replace(regex, selectedText);
}
console.log(input);
出於某種原因,它給我的輸出爲:我該如何解決這個<div>111</div></div>
?
請不要使用正則表達式處理xml/html ... –
@CommuSoft什麼是更好的選擇,爲什麼它更好? –
你可以例如[創建一個虛擬DOM](http://stackoverflow.com/a/10585079/67579),然後重寫它,或使用xpath。這更好,因爲[正則表達式不能處理遞歸結構](http://stackoverflow.com/questions/701166/can-you-provide-some-examples-of-why-it-is-hard-to-解析的XML和HTML的-與-A-REG)。 –