我有一個字符串(部分HTML),我想替換字符串:-)
進入設置高亮:wink:
。但是這個替換不應該發生在<pre>
內,而是在任何其他標籤中(或者甚至不在標籤內)發生。如何不能代替文字特定標籤內的JavaScript中
例如,我想更換
:-)<pre>:-)</pre><blockquote>:-)</blockquote>
到:
:wink:<pre>:-)</pre><blockquote>:wink:</blockquote>
我已經用下面的正則表達式嘗試過,但它不工作(沒有被替換):
var s = ':-)<pre>:-)</pre><blockquote>:-)</blockquote>';
var regex = /:\-\)(?!(^<pre>).*<\/pre>)/g;
var r = s.replace(regex, ':wink:');
有人可以幫我嗎? :-)
不要試圖解析與正則表達式的HTML節點; HTML不是常規的。使用合適的HTML解析器來生成DOM - 對於JavaScript,jQuery是一個理想的選擇。 – 2009-11-03 12:12:29