RegExp.escape în JavaScript

Escapează caracterele speciale dintr-un text, ca să poată fi căutat exact într-o expresie regulată.

Sintaxă
RegExp.escape(text)

Ce face RegExp.escape

Când construiești o expresie regulată dintr-un text oarecare (de exemplu ce a scris utilizatorul în căutare), caracterele . * + ? ( ) [ ] { } | ^ $ \ au sens special și strică modelul.

RegExp.escape returnează textul cu toate aceste caractere escapate, astfel încât expresia să caute exact textul dat. Poate escapa și alte caractere (de exemplu prima literă sau cifră și spațiile), ca rezultatul să fie sigur în orice poziție a modelului.

Parametri

Parametru Descriere
text Textul de escapat.

Ce returnează

Un șir sigur de pus într-o expresie regulată.

Exemple

Exemplul 1: Căutarea unui text cu caractere speciale

const cautare = "1.5 (promo)";
const re = new RegExp(RegExp.escape(cautare), "g");

console.log(re.source);
console.log("Preț 1.5 (promo) sau 105 (promo)".match(re));

Rezultat

\x31\.5\x20\(promo\)
[ '1.5 (promo)' ]

Exemplul 2: Evidențierea unui cuvânt căutat

const termen = "C++";
const text = "Învăț C++ și C#.";

console.log(text.replace(new RegExp(RegExp.escape(termen), "gi"), (g) => `[${g}]`));

Rezultat

Învăț [C++] și C#.

Greșeli frecvente

  • Pui textul utilizatorului direct în new RegExp(text). Un text ca "(" aruncă SyntaxError, iar ".*" potrivește orice.

Comenzi înrudite