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
RegExp (expresii regulate): Creează o expresie regulată: un model de text folosit pentru căutare, validare și înlocuire.replace / replaceAll: Înlocuiește o bucată de text cu alta. replace schimbă prima apariție, replaceAll pe toate.String.prototype.search: Returnează poziția primei potriviri a unei expresii regulate sau -1.