Fonction RegExp.escape manquante de JavaScript
Vous cherchez à construire des expressions régulières à partir de chaînes arbitraires, mais les méthodes intégrées vous échappent. Malgré le RegExp.escape pratique de Ruby, JavaScript n'a pas d'équivalent.
La fonction suggérée
La fonction recommandée dans un autre fil de discussion échoue car elle ne parvient pas à échapper des caractères comme ^ (début de chaîne), $ (fin de chaîne) et - (utilisé pour les plages dans les groupes de caractères).
Pour une solution robuste, considérez le suivant :
function escapeRegex(string) { return string.replace(/[/\-\^$*+?.()|[\]{}]/g, '\$&'); }
Cette fonction échappe judicieusement tous les caractères cruciaux pour la construction d'expressions régulières, ce qui la rend adaptée à la fois aux classes de caractères et aux littéraux d'expression régulière.
Pourquoi JavaScript manque-t-il ?
L'absence de RegExp.escape intégré dans JavaScript reste un problème épineux. Cette fonction est indispensable pour nettoyer les entrées de l'utilisateur avant de créer des expressions régulières, évitant ainsi les vulnérabilités de sécurité potentielles et les comportements inattendus.
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!