我正试图抓住tinyMCE
标签,因为过去2天我无法解决如何解决问题。现在我正在努力做到以下几点:
我有一个文本区域,用\ n或\ r \ n(可能)创建新行,所以我必须将所有\ n包装在< * p>中标签,但有2个条件:
以下是我到目前为止所做的事情:
<textarea id="t"><p>replace P from the very first line until next new line comes</p>
<p>this should be skipped</p>
all lines not wrapped in P should be wrapped and the ones already wrapped in P should be skipped
<p>already wrapped so skip it</p>
</textarea>
javascript:
var content = $('#t').val().replace(/\n{2,}/g, '<p></p>');
alert(content);
它产生以下结果:
<p>replace P from the very first line until next new line comes</p><p></p><p>this should be skipped</p> all lines not wrapped in P should be wrapped and the ones already wrapped in P should be skipped<p></p><p>already wrapped so skipe it</p>
下面是jsFiddle: https://jsfiddle.net/s99my37u/
答案 0 :(得分:0)
这应该有效。我使用否定前瞻(?!)
来查找不以<p>
开头并且不以</p>
结尾的行,以及捕获该行内容的捕获组(.*)
然后我将其替换为包裹的捕获行<p>$1</p>
,其中$1
表示第一个捕获组。
我还使用了多行标记m
,以便^
和$
匹配行的开头和结尾。
var content = $('#t').val().replace(/^(?!<p>)(.*)(?!<\/p>)$/gm, "<p>$1</p>").replace(/<p>(.*)<\/p>/, "$1");
alert(content);