2013-03-28 5 views
0

Recherche sur mon site est mis en œuvre en utilisant l'expression régulière:mise en œuvre

RegExp(name, 'i') 

où est la valeur « nom » du bloc d'entrée. Le problème est que le point correspond à n'importe quel caractère et quand j'entre le point, la recherche donne de mauvais résultats. Comment devrais-je changer de modèle d'expression régulière pour exclure ce problème?

+0

Quelle est l'expression régulière utilisez-vous? Il n'y a pas de point ici. –

+0

Échapper à l'expression régulière – Doorknob

+0

Si vous ne voulez pas de fonctionnalité d'expression régulière, pourquoi utilisez-vous une expression régulière? – Sepster

Répondre

0

Si vous ne voulez pas autoriser certaines expressions régulières, vous pouvez effectuer une recherche/remplacement pour échapper ces valeurs, de sorte que par exemple . devient \..

Vous devrez préciser dans votre invite que certaines expressions régulières seront traitées comme des littéraux.

0

Vous devez créer un échappement de regex pour échapper tous les caractères méta.

Je pense que cette fonction s'adaptera: (dans Is there a RegExp.escape function in JavaScript?)

RegExp.escape= function(s) { 
    return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&') 
};