![](/img/trans.png)
[英]regex: How to replace curly brackets in the html content except the curly brackets inside style tags?
[英]Javascript Regex to replace brackets with content inside
我正在嘗試構建正則表達式以將方括號替換為其他內容,在這種情況下為div標簽。
因此,文本:
This is a [sample] text
會成為:
This is a <div>sample</div> text
問題是,僅當找到兩個方括號時才應更換,並將其內容保留在里面。 如果僅找到一個括號,則應將其忽略。
所以
This is a [sample text
要么
This is a ] sample text
兩者都將保持原樣。
此外,它應匹配多個事件,因此:
This [is] a [sample] [text]
會成為
This <div>is</div> a <div>sample</div> <div>text</div>
最后一件事,它應該刪除(或至少忽略)嵌套的括號,因此
This [[is a ] sample [[[ tag]]]
會成為
This <div>is a</div> sample <div> tag </div>
這是我到目前為止所得到的:
function highlightWords(string){
return string.replace(/(.*)\[+(.+)\]+(.*)/,"$1<div>$2</div>$3");
}
它可以在簡單的情況下使用,但不會多次出現,也不會刪除其他標簽。 是否有正則表達式高手?
無需在方括號之前和之后描述內容。 您必須在內容描述中禁止使用方括號,因此請使用[^\\][]+
而不是.+
。 不要忘記為全局替換添加g
:
function highlightWords(string){
return string.replace(/\[+([^\][]+)]+/g,"<div>$1</div>");
}
注意:您無需在字符類外轉義右方括號,因為它不是特殊字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.