J'utilise une très belle bibliothèque JavaScript appelée "array-query" par Jacob Wright pour effectuer des recherches dans des tableaux d'objets. Une méthode est regex()
où une expression régulière peut être incluse entre parenthèses comme ceci: regex(/[^\w\s]/)
. Si je code en dur l'expression comme je viens de le montrer, cela fonctionne bien. Si je mets la même expression dans une variable d'abord il ne fonctionne pas, comme ceci:Convertir une chaîne en une expression régulière
var reg = "/[^\w\s]/";
regex(reg);
On m'a dit
Vous mettez des guillemets autour de votre regex, ce qui en fait une chaîne. Enlever les citations.
Ainsi
var reg = /[^\w\s]/;
regex(reg);
fonctionne très bien.
Le problème est que je dois accepter l'entrée d'utilisateur d'une zone de texte dans le cadre de l'expression régulière. Par exemple, si l'utilisateur tape la lettre z
, elle doit être remplacée par /z/
. Même si je tape /z/
le textbox.value
retourné a le même problème en tant que var reg = "/z/"
. Si je code en dur var reg = /z/; regex(reg);
cela fonctionne bien. Comment faire pour entrer une valeur de zone de saisie de "z"
dans un formulaire var reg = z;
? Un grand merci pour toute aide ou des idées, espérons que ce n'est pas trop confus.
ici: http://stackoverflow.com/questions/874709/converting-user-input-string-to-regular-expression – mzedeler
Ce comme cela a été demandé avant , jetez un oeil sur le lien mzedeler posté. Je recommande également de lire de la documentation sur les expressions régulières en JavaScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions. –