2017-06-22 3 views
0

J'essaie de trouver la position de \\ch d'un code de latex, disons foo\\ch mais la méthode de recherche de chaîne ne parvient pas à le faire . Par exemple exécutant le code suivant:La méthode search() en javascript ne parvient pas à rechercher "\ ch" dans une chaîne contenant

console.log('foo\\c'.search('\\c')); // expected 3, really get 3 
console.log('foo\\ch'.search('\\ch')); // expected 3, but get -1 

Je soupçonne que la « erreur » est due à \ch forme un caractère spécial mais je l'ai cherché sur Internet et il semble \ch n'est pas un caractère spécial.

Répondre

1

Lorsque vous appelez search() avec une chaîne comme argument, elle est convertie en une expression régulière (voir here)

Mais new RegExp('\\ch') retours /\ch/ qui est l'expression régulière pour correspondre à tout backspace (\cX matchs de contrôle caractère X, voir here).

Pour obtenir ce que vous voulez utiliser le /\\ch/ regex

'Foo\\ch'.search(/\\ch/) // returns 3