我正在處理自定義的CMS,並希望能夠選擇一段HTML顯示在textarea中進行編輯,並用另一個標籤替換任何封閉標籤。例如,我可能希望選擇一個段落元素並將其變成一個h3,只需點擊一下,就可以保持其他任何標籤不變。刪除從textarea中選擇封閉的html標籤
我已經實現rangyinputs允許在文字區域getSelection /使用replaceSelectedText操作,到目前爲止,我有這樣的:
function add_html_tag(target_ID, replace_tag) {
$(target_ID).focus();
$(target_ID).replaceSelectedText('<' + replace_tag + '>' + $(target_ID).getSelection().text.replace(/(<([^>]+)>)/ig,"") + '</' + replace_tag + '>');
}
這工作正常,但它從目標文本中刪除所有標籤,不只是封閉的人如此所選文本中的任何其他標籤也將被刪除。
任何想法,我認爲它只會涉及更改替換語句中的正則表達式。由於textarea只包含純文本,所以我不能使用jQuery方法,比如unwrap。很明顯,在HTML上做這樣的正則表達式操作是容易出錯的,但現在我會假定用戶正確選擇文本!
您應該不使用正則表達式來解析HTML。看到這篇文章[這裏](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags?rq=1)。 – Walls 2013-04-29 20:44:25