文字列内のバックスラッシュのエスケープ
JavaScript では、バックスラッシュ文字は文字列と正規表現の両方で重要な意味を持ちます。これにより、テキストにスタンドアロンのバックスラッシュを含めようとするときに問題が発生します。これを実現するには、2 つの連続したバックスラッシュ () を使用してバックスラッシュをエスケープする必要があります。
文字列
文字列を作成する場合、最初のバックスラッシュはエスケープ文字として機能します。 2 番目は実際のバックスラッシュを表します。例:
const str = "\"\I have one backslash\""; console.log(str); // \I have one backslash
正規表現
同様に、正規表現では、単一のバックスラッシュと一致するには、2 つの連続するバックスラッシュが必要です。これは、最初のバックスラッシュが正規表現リテラル内でエスケープ文字として機能するためです。例:
const regex = /\/; // Match a single backslash
文字列を使用した正規表現の作成
文字列を使用して正規表現を作成する場合は、2 つのレベルのエスケープを考慮することが重要です。まず、文字列内でバックスラッシュをエスケープし、作成した正規表現内で再度エスケープする必要があります。したがって、合計 4 つのバックスラッシュが必要です。
const regex = new RegExp("\\"); // Matches a single backslash using a string
ES2015 および ES2018 の更新
最近の JavaScript バージョンでは、テンプレート リテラルにより、文字列にバックスラッシュを含める代替方法が提供されます。 。 String.raw 関数を使用してこれを実現することもできます。
const str = String.raw`\apple`; // Valid ES2015 syntax
テンプレート リテラルは、${ 文字を含む置換をサポートしていないため、慎重に使用する必要があることに注意してください。テンプレート リテラル内に ${ を含めると、次の例のように文字列にバックスラッシュが含まれます:
const foo = "bar"; const str = String.raw`\apple${foo}`; // Results in \applebar
以上がJavaScript 文字列および正規表現でバックスラッシュをエスケープするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。