JavaScript String.Replace()の例と正規表現

正規表現(RegExまたはRegExpとも呼ばれます)は、テキストを分析するための強力な方法です。RegExを使用すると、特定の文字(JavaScriptなど)またはパターン(NumberStringSymbol-3a&など)に一致するポイントで文字列を一致させることができます。

この.replaceメソッドは、JavaScriptの文字列で使用され、文字列の一部を文字に置き換えます。それはしばしばそのように使用されます:

const str = 'JavaScript'; const newStr = str.replace("ava", "-"); console.log(newStr); // J-Script 

上記のように、replaceメソッドは、置き換えられる文字列と、文字列が置き換えられるものの2つの引数を受け入れます。

ここで正規表現が登場します。

上記の使用.replaceは制限されています。置き換えられる文字は既知です-「ava」。代わりにパターンに関心がある場合はどうなりますか?たぶん、数字、2文字、そして「foo」という単語または3つの記号が一緒に使用されていますか?

.replace使用される方法でRegExこれを実現できます。RegExパターンを再現するために効果的に使用できます。したがって、これを組み合わせることで、.replace正確な文字だけでなくパターンを置き換えることができます。

どのように使用するRegEx.replace、JavaScriptで

RegExを使用するには、の最初の引数replaceをregex構文に置き換えます(例:)/regex/。この構文は、それに一致する文字列の任意の部分が新しい部分文字列に置き換えられるパターンとして機能します。

次に例を示します。

// matches a number, some characters and another number const reg = /\d.*\d/ const str = "Java3foobar4Script" const newStr = str.replace(reg, "-"); console.log(newStr); // "Java-Script" 

文字列3foobar4は正規表現/\d.*\d/と一致するため、置き換えられます。

複数の場所で交換を実行したい場合はどうなりますか?

Regexすでにg(グローバル)フラグでそれを提供しており、同じことがreplace。で使用できます。方法は次のとおりです。

const reg = /\d{3}/g const str = "Java323Scr995ip4894545t"; const newStr = str.replace(reg, ""); console.log(newStr); // JavaScrip5t // 5 didn't pass the test :( 

正規表現は、正確に3つの連続した数字である文字列の部分と一致します。323一致する、995一致する、489一致する、454一致する。しかし、最後5はパターンと一致しません。

結果はJavaScrip5t、パターンがどのように正しく一致し、新しい部分文字列(空の文字列)に置き換えられるかを示しています。

ケースフラグ-iも使用できます。これは、大文字と小文字を区別しないパターンを置き換えることができることを意味します。使用方法は次のとおりです。

const reg1 = /\dA/ const reg2 = /\dA/i const str = "Jav5ascript" const newStr1 = str.replace(reg1, "--"); const newStr2 = str.replace(reg2, "--"); console.log(newStr1) // Jav5ascript console.log(newStr2) // Jav--script 

..5a..RegExはデフォルトで大文字と小文字を区別するため、最初の構文とは一致しません。しかしi、2番目の構文に見られるように、フラグを使用すると、文字列は期待どおりに置き換えられます。

正規表現でSplitを使用する方法

splitも使用しRegExます。つまり、完全に一致する文字列だけでなく、パターンでも文字列を分割できます。

簡単な説明は次のとおりです。

const regex = /\d{2}a/; const str = "Hello54 How 64aare you"; console.log(str.split(regex)) // ["Hello54 How ", "are you"] 

その部分文字列が指定された正規表現と一致するため、文字列はにありsplitまし64aた。

フラグや他のフラグとは異なり、グローバルフラグ--- ginsplitは無関係であることに注意しくださいi。これはsplit、正規表現が一致するいくつかのポイントで文字列を分割するためです。

まとめ

RegEx作るreplaceより、効果的な強力な、そして楽しいJavaScriptで文字列をする。

正確な文字だけでなく、パターンと複数の置換を一度に制限されます。この記事では、いくつかの例を使用して、それらがどのように連携するかを確認しました。

正規表現に乾杯?