iT邦幫忙

1

正則表達式 - 如何避開 <script></script> 的內容

大家好,最近有個案子需要讓中英文採用的不同字型,因為套出來的效果有字級的落差(視覺上)。

查詢了一下可以使用的方案,最後使用 regex 來過濾出英文及數字,再包一層 span 在外面,但是沒辦法避開 script、style 的 tag ,導致 script、style 的內容也都被包在 span 裡。

請問應該怎麼寫才能夠避開特定 tag 的內容?

程式碼如下,雖然英數的效果對了,但用檢查就可以看到悲劇發生......:
https://jsfiddle.net/xinyiiilin/1bxsuonm/

froce iT邦大師 1 級 ‧ 2020-08-18 21:09:07 檢舉
https://api.jquery.com/not-selector/

不過還是建議對特定的class去做,不要對div做。
你不怕拖累整個速度嗎?
正則只能使用一個規則來抓取或置換字串,但你可以再加一個for先處理tag再處理innerHTML
謝謝建議! 雖然已經有解答了,但您的建議聽起來也是不錯的做法,會再試看看,謝謝!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

3
淺水員
iT邦大師 6 級 ‧ 2020-08-18 21:14:08
最佳解答

真正去歷遍所有節點
遇到文字節點再依照內容更新
https://jsfiddle.net/0t4yv836/5/

非常的感謝!! 因為還不熟,所以之前沒有想到這個做法,謝謝指教

0
wolfwang
iT邦研究生 4 級 ‧ 2020-08-18 18:41:49

謝謝建議,有試過使用 unicode-range ,字型的部分就是 unicode-range 實作的, 但是 @font-face 不支援 font-size ,所以這個方式沒辦法

我要發表回答

立即登入回答