JavaScriptで文字列のすべての出現を置き換える方法

正規表現から他のアプローチまで、プレーンJavaScriptで出現するすべての文字列を置き換える適切な方法を見つけてください


正規表現を使用する

この単純な正規表現は次のタスクを実行します。

String.replace(/<TERM>/g, '')

これは、大文字と小文字を区別代用。

これは、文字列内の「dog」という単語のすべての出現箇所を置き換える例です。phrase

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.replace(/dog/g, '')

stripped //“I love my ! Dogs are great”

大文字と小文字を区別しない置換を実行するには、i正規表現のオプション:

String.replace(/<TERM>/gi, '')

例:

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.replace(/dog/gi, '')

stripped //“I love my ! s are great”

文字列に特殊文字が含まれている場合、正規表現ではうまく機能しないため、この関数を使用して文字列をエスケープすることをお勧めします(MDN):

const escapeRegExp = (string) => {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\{{content}}amp;')
}

分割と結合の使用

正規表現よりも低速ですが、別の解決策は2つのJavaScript関数を使用することです。

最初はsplit()、パターンが見つかると文字列を切り捨て(大文字と小文字を区別)、トークンを含む配列を返します。

const phrase = 'I love my dog! Dogs are great'
const tokens = phrase.split('dog')

tokens //["I love my ", “! Dogs are great”]

次に、トークンを新しい文字列で結合します。今回は区切り文字を使用しません。

const stripped = tokens.join('') //"I love my ! Dogs are great"

まとめ:

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.split('dog').join('')

私の無料ダウンロードJavaScriptビギナーズハンドブック


その他のjsチュートリアル: