[英]How to wrap a part of text fetched from array of object in a span tag?
[英]How to wrap text not part of a tag in a tag?
我想強調(與<mark
)另一個字符串中搜索字符串,但它不應該是一個標簽的部分(即te
在<cite>
不應該匹配,但te
在test
應該)。 我一直在使用這樣的代碼將匹配項替換為列出的第二個正則表達式,但是只能嵌套使用。
someElement.innerHTML.replace(regex, function(full, before, match, after) {
return before + '<mark>' + match + '</mark>' + after;
});
我嘗試過的建議:
<\\/\\w*>(\\w*\\s*)*(te)(\\w*\\s*)*<([az]*\\s*\\w*="\\w*")*>
(根本不匹配?) (<.+?>[^<>]*?.*)(te)(.*[^<>]*?<.+?>)
(僅適用於嵌套標記) ((<.+?>[^<>]*?)?.*)(te)(.*([^<>]*?<.+?>)?)
(. .replace
給出未定義的) 例:
要包裝的字符串: te
輸入文本:
‘This is a test string’
<cite> — some test wrapped too</cite>
預期產量:
‘This is a <mark>te</mark>st string’
<cite> — some <mark>te</mark>st wrapped too</cite>
我瀏覽了很多“重復項”,但是找不到確切的重復項,但是如果有人可以帶領我找到一個可行的示例,那也將很可愛,謝謝!
現在刪除的一個最適合我的答案是(te)(?![^<]*>)
(通過revo)。 但是,如果下一個char是>
,則此方法不起作用,但是我將其視為未解決的邊緣情況。
正則表達式:
(te)(?!\w*>)
負前瞻檢查它是否在開始/結束標簽內,這是有益的。 (?!\\w*>)
這將忽略任何te
,后跟任何單詞字符和>
(這可能表示在標簽名稱之內。)
如果輸入字符串中可能存在諸如test>
(未配對)之類的字符串,即使它不是標簽,也不會匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.