亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

正則表達式替換html標簽之外的文本

正則表達式替換html標簽之外的文本

我有這個HTML:"This is simple html text <span class='simple'>simple simple text text</span> text"我只需要匹配任何HTML標記之外的單詞。我的意思是,如果我想匹配“簡單”和“文本”,則只能從“這是簡單的html文本”和最后一部分“文本”中得到結果-結果將是“簡單” 1匹配,“文本” 2火柴。有人可以幫我嗎?我正在使用jQuery。var pattern = new RegExp("(\\b" + value + "\\b)", 'gi');if (pattern.test(text)) {    text = text.replace(pattern, "<span class='notranslate'>$1</span>");}value 是我要匹配的單詞(在這種情況下為“簡單”)text 是 "This is simple html text <span class='simple'>simple simple text text</span> text"我需要用來包裝所有選定的單詞(在此示例中為“簡單”)<span>。但是我只想包裝任何 HTML標記之外的詞。這個例子的結果應該是This is <span class='notranslate'>simple</span> html <span class='notranslate'>text</span> <span class='simple'>simple simple text text</span> <span class='notranslate'>text</span>我不想替換里面的任何文本<span class='simple'>simple simple text text</span>它應與更換前的相同。
查看完整描述

2 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

好的,嘗試使用此正則表達式:


(text|simple)(?![^<]*>|[^<>]*</)

該示例在regex101上工作。


分解:


(         # Open capture group

  text    # Match 'text'

|         # Or

  simple  # Match 'simple'

)         # End capture group

(?!       # Negative lookahead start (will cause match to fail if contents match)

  [^<]*   # Any number of non-'<' characters

  >       # A > character

|         # Or

  [^<>]*  # Any number of non-'<' and non-'>' characters

  </      # The characters < and /

)         # End negative lookahead.

否定的超前查詢將阻止html標簽之間的text或simple。


查看完整回答
反對 回復 2019-10-21
  • 2 回答
  • 0 關注
  • 944 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號