Question

J'obtiens des résultats inattendus avec ce code:

'foo'.match(new RegExp('\bfoo\b')); // Returns null

Pourquoi est-ce de retour null Alors que celui-ci renvoie "foo"?

'foo'.match(new RegExp('foo')); // Returns "foo"

Un marqueur de limite de mot ne correspond-il pas non plus au début et à la fin?

EDIT: J'ai besoin que l'expression régulière elle-même soit une chaîne car j'y injecte des variables.

Était-ce utile?

La solution

Échapper aux barreaux de barre

'foo'.match(new RegExp('\\bfoo\\b'));

Autres conseils

Ne l'enveloppez pas en citations ... Au lieu de cela, faites ceci: -

'foo'.match(new RegExp(/\bfoo\b/))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top