簡體   English   中英

從textarea中的選擇中刪除封閉的html標簽

[英]Remove enclosing html tags from selection in textarea

我正在使用自定義CMS,並且希望能夠選擇顯示的HTML部分以在文本區域中進行編輯,並將任何封閉的標簽替換為另一個標簽。 例如,我可能想選擇一個段落元素,然后一鍵將其變成h3,而其他所有標簽都保持不變。

我已經實現rangyinputs,以允許對textareas進行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 + '>');
}

可以,但是可以從目標文本中刪除所有標簽,而不僅僅是封閉的標簽,因此所選文本中的所有其他標簽也將被刪除。

任何想法,我認為這僅涉及在replace語句中更改正則表達式。 由於textarea僅包含純文本,因此我無法使用jQuery方法,例如unwrap。 顯然,在HTML上執行這樣的正則表達式操作很容易出錯,但是現在我將假定用戶正確選擇文本!

該演示將“ A”標簽轉換為“ LINK”標簽; 無效,但顯示您描述的功能:

function add_html_tag(target_ID, replace_tag, new_tag_name) {
  var elm=$("#"+target_ID).focus()[0];
  elm.value=elm.value.replace(  new RegExp("<(\\\/?)"+replace_tag+"\\b", "gi"), "<$1"+new_tag_name);
}

add_html_tag(textAreaID, "a", "link");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM