Maison >interface Web >js tutoriel >Comment puis-je échapper aux barres obliques inverses dans les chaînes JavaScript et les expressions régulières ?

Comment puis-je échapper aux barres obliques inverses dans les chaînes JavaScript et les expressions régulières ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-04 12:27:04828parcourir

How Do I Escape Backslashes in JavaScript Strings and Regular Expressions?

Échapper aux barres obliques inverses dans les chaînes

En JavaScript, le caractère barre oblique inverse a une signification à la fois dans les chaînes et dans les expressions régulières. Cela crée des difficultés lorsque l'on tente d'inclure une barre oblique inverse autonome dans le texte. Pour y parvenir, il est nécessaire d'échapper à la barre oblique inverse en utilisant deux barres obliques consécutives ().

Chaînes

Lors de la création de chaînes, la première barre oblique inverse agit comme un caractère d'échappement, tandis que la seconde représente la barre oblique inverse réelle. Par exemple :

const str = "\"\I have one backslash\"";
console.log(str); // \I have one backslash

Expressions régulières

De même, dans les expressions régulières, deux barres obliques inverses consécutives sont requises pour correspondre à une seule barre oblique inverse. En effet, la première barre oblique inverse sert de caractère d'échappement dans le littéral de l'expression régulière. Par exemple :

const regex = /\/; // Match a single backslash

Utiliser des chaînes pour créer des expressions régulières

Lors de l'utilisation de chaînes pour construire des expressions régulières, il est important de considérer deux niveaux d'échappement. Tout d'abord, les barres obliques inverses doivent être échappées dans la chaîne, puis à nouveau dans l'expression régulière créée. Par conséquent, quatre barres obliques inverses sont nécessaires au total.

const regex = new RegExp("\\"); // Matches a single backslash using a string

Mises à jour ES2015 et ES2018

Dans les versions récentes de JavaScript, les littéraux de modèles fournissent une méthode alternative pour inclure des barres obliques inverses dans les chaînes. . La fonction String.raw peut également être utilisée pour y parvenir.

const str = String.raw`\apple`; // Valid ES2015 syntax

Il convient de noter que les littéraux de modèle doivent être utilisés avec prudence, car ils ne prennent pas en charge les substitutions contenant des caractères ${. L'inclusion de ${ dans un littéral de modèle entraînera l'inclusion de la barre oblique inverse dans la chaîne, similaire à l'exemple ci-dessous :

const foo = "bar";
const str = String.raw`\apple${foo}`; // Results in \applebar

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn