la syntaxe javascript erreur: invalid expression régulière
Je suis en train d'écrire une application en javascript. Dans mon application, il ya une option pour rechercher une chaîne de caractères/regex. Le problème, c'est match retourne javascript d'erreur si l'utilisateur tape une fausse valeur.
Exemple de code:
function myFunction() {
var filter = $("#text_id").val();
var query = "select * from table";
var found;
if (query.match(filter) != -1) {
found = true;
}
else{
found = false;
}
//Do something
}
jsfiddle: http://jsfiddle.net/ZVNMq/
Entrer la chaîne de caractères: sel/\
Match retourne js erreur Uncaught SyntaxError: Invalid regular expression: /sel\/: \ at end of pattern.
Est-il un moyen de vérifier si la chaîne est valide regex ou pas?
try catch
est la manière la plus rapide et indolore.ecoutant nhahtdh conseils serait une bonne idée en tout cas. dans votre situation, vous avez pour échapper au échapper symbole `. en règle générale, on doit s'échapper tous les caractères ayant une signification spéciale dans une regexp si vous permettez non validées saisie de l'utilisateur du modèle. si vous venez d'arriver à stocker les données dans des nœuds dom, vous aurez probablement obtenir le long sans effort supplémentaire.
OriginalL'auteur Sandy | 2013-04-23
Vous devez vous connecter pour publier un commentaire.
Utiliser une instruction try-catch:
OriginalL'auteur Bergi
Dans ce cas, vous n'avez pas réellement besoin des expressions régulières, mais si vous voulez éviter les caractères non valides dans votre expression, vous devriez y échapper:
Utilisation:
Sans une expression régulière, vous pourriez avoir fait cela:
OriginalL'auteur Ja͢ck
Peut-être que vous devriez essayer de s'échapper de la slash sur une ligne avant le "var query".
Si vous souhaitez rechercher une chaîne de caractères pour une barre oblique dans la regex, il faut l'échapper ou regex sera lu comme un caractère réservé.
OriginalL'auteur strakez