J'ai besoin d'échapper aux caractères spéciaux des expressions rationnelles à l'aide de Java script.Comment puis-je y parvenir? Toute aide devrait être appréciée.
Merci pour votre réponse rapide.Mais j'ai besoin d'échapper à tous les caractères spéciaux d'expression régulière.J'ai essayé par ce code, mais je ne peux pas atteindre le résultat.
RegExp.escape=function(str)
{
if (!arguments.callee.sRE) {
var specials = [
'/', '.', '*', '+', '?', '|',
'(', ')', '[', ']', '{', '}', '\\'
];
arguments.callee.sRE = new RegExp(
'(\\' + specials.join('|\\') + ')', 'gim'
);
}
return str.replace(arguments.callee.sRE, '\\$1');
}
function regExpFind() {
<%--var regex = new RegExp("\\[munees\\]","gim");--%>
var regex= new RegExp(RegExp.escape("[Munees]waran"));
<%--var regex=RegExp.escape`enter code here`("[Munees]waran");--%>
alert("Reg : "+regex);
}
Qu'est-ce que je me trompe avec ce code? S'il vous plaît guide-moi.
Utilisez le caractère \
pour échapper à un caractère ayant une signification spéciale dans une expression régulière.
Pour l’automatiser, vous pouvez utiliser ceci:
function escapeRegExp(text) {
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
}
Mise à jour: Il existe maintenant une proposition visant à normaliser cette méthode, éventuellement dans ES2016: https://github.com/benjamingr/RegExp. échapper
Mise à jour : La proposition susmentionnée a été rejetée. Continuez donc de la mettre en œuvre vous-même si vous en avez besoin.
Utilisez la barre oblique inverse pour échapper à un personnage. Par exemple:
/\\d/
Cela correspondra à\d au lieu d'un caractère numérique
Avec \
vous échappez des caractères spéciaux
Échappe aux caractères spéciaux en caractères littéraux et aux caractères spéciaux.
E.g:/(s)/correspond à '(s)' tandis que/(\ s)/correspond à un espace et capture la correspondance.
Source: http://www.javascriptkit.com/javatutors/redev2.shtml