在JavaScript 中取代多次出現的字串
您可能會發現自己需要在JavaScript 中取代多次出現的字串,但是標準string.replace() 方法只刪除第一個實例。如何確保所有出現的內容都被取代?
現代解決方案(ES2021)
現代瀏覽器現在支援 String.replaceAll() 方法,該方法本身允許您替換字串的所有實例。只需使用語法:
<code class="js">string = string.replaceAll('abc', '');</code>
舊版瀏覽器的舊版解決方案
對於舊版瀏覽器,您可以使用帶有g(全局)標誌的正則表達式:
<code class="js">function replaceAll(str, find, replace) { return str.replace(new RegExp(find, 'g'), replace); }</code>
轉義特殊字符
正則表達式包含特殊字符,因此在為find 參數傳遞變量時要小心。使用escapeRegExp() 函數安全地轉義任何特殊字元:
<code class="js">function escapeRegExp(str) { return str.replace(/[.*+?^${}()|[\]\]/g, '\$&'); }</code>
因此,更新後的ReplaceAll() 函數變為:
<code class="js">function replaceAll(str, find, replace) { return str.replace(new RegExp(escapeRegExp(find), 'g'), replace); }</code>
此解決方案確保指定字串的所有出現儘管瀏覽器相容,但仍會被取代。
以上是如何在 JavaScript 中替換所有出現的字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!