給定一個類似「Test abc test test abc test test test abc test test abc」的字串,取代第一次出現的使用string.replace('abc', '') 的「abc」是不夠的。此問題解決如何替換 JavaScript 中出現的 所有 字串。
現代解決方案(ECMAScript 2021 及更高版本):
對於現代瀏覽器支援ECMAScript 2021 規範的瀏覽器,您可以使用String.replaceAll()方法:
<code class="javascript">str = str.replaceAll('abc', '');</code>
舊版瀏覽器解決方案:
對於缺少String.replaceAll(),可以使用下列自訂函數:
<code class="javascript">function replaceAll(str, find, replace) { return str.replace(new RegExp(escapeRegExp(find), 'g'), replace); } function escapeRegExp(str) { return str.replace(/[.*+?^${}()|[\]\]/g, '\$&'); // $& means the whole matched string }</code>
這個模式經過多次細化,最終形成了上面的replaceAll()函數,它透過pre 在find 參數中容納字串參數- 處理它們以轉義特殊字元。
以上是如何在 JavaScript 中替換所有出現的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!