Je veux juste créer une expression régulière avec n'importe quelle chaîne possible.
var usersString = "Hello?!*`~World()[]"; var expression = new RegExp(RegExp.escape(usersString)) var matches = "Hello".match(expression);
Existe-t-il une méthode intégrée ? Sinon, qu’utilisent les gens ? Ruby a RegExp.escape
. J'ai l'impression que je n'ai pas besoin d'écrire le mien, il doit y avoir une norme.
Pour toute personne utilisant Lodash, Depuis la v3.0.0, la fonction _.escapeRegExp est intégrée :
Et si vous ne voulez pas avoir besoin de la bibliothèque Lodash complète, vous voudrez peut-être C'est tout !
La fonctionnalité liée dans l'autre réponse n'est pas suffisante. Il ne peut pas s'échapper
^
或$
(字符串的开头和结尾)或-
, ils sont utilisés dans des plages au sein de groupes de caractères.Utilisez cette fonctionnalité :
Bien que cela puisse sembler inutile à première vue, l'échappement
-
(以及^
) rend cette fonction également adaptée aux caractères d'échappement à insérer dans les classes de caractères en tant que corps d'une expression régulière.Escape
/
Rend cette fonction adaptée aux caractères d'échappement à utiliser dans les littéraux d'expression régulière JavaScript pour une évaluation ultérieure.Comme il n'y a aucun mal à échapper à l'un d'entre eux, il est logique de s'échapper pour couvrir un plus large éventail de cas d'utilisation.
Oui, malheureusement, cela ne fait pas partie du JavaScript standard.