128 votes

Correspondance d'une barre oblique avec une regex

Je n'ai pas beaucoup d'expérience avec JavaScript mais j'essaie de créer un système de balises qui, au lieu d'utiliser @ o # utiliserait / .

var start = /#/ig; // @ Match

var word = /#(\w+)/ig; //@abc Match

Comment pourrais-je utiliser un / au lieu de la # . J'ai essayé de faire var slash = '/' et en ajoutant + slash + mais cela a échoué.

158voto

Ben McCormick Points 9118

Vous pouvez y échapper comme ceci.

/\//ig; //  Matches /

ou utiliser simplement indexOf

if(str.indexOf("/") > -1)

34voto

djechlin Points 18051

Vous devez échapper à la / avec un \ .

/\//ig // matches /

14voto

David Cavazos Points 136

Vous pouvez y échapper en le faisant précéder d'un \ (ce qui en fait \/ ), ou vous pouvez utiliser new RegExp('/') a éviter l'échappement de la regex .

Voir exemple dans JSFiddle .

'/'.match(/\//)            // matches /
'/'.match(new RegExp('/')  // matches /

10voto

epascarello Points 71353

Si vous voulez utiliser / vous devez l'échapper avec un \

var word = /\/(\w+)/ig;

8voto

Kirk H Points 431

Dans les expressions régulières, "/" est un caractère spécial qui doit être échappé (c'est-à-dire signalé en plaçant un "\" devant lui, ce qui annule toute fonction spécialisée qu'il pourrait remplir).

Voici ce dont vous avez besoin :

var word = /\/(\w+)/ig; //   /abc Match

Pour en savoir plus sur les caractères spéciaux RegEx, cliquez ici : http://www.regular-expressions.info/characters.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X