J’ai un enregistrement dans ma firebase database: \w{3}_\d{5}
Lorsque je récupère cet enregistrement dans une chaîne Java, il se présente comme suit: \w{3}_\d{5}
Cependant, lorsque j’affecte cette chaîne Java à la variable JavaScript, elle se présente comme suit: w{3}_d{5}
c’est-à-dire sans barre oblique inverse
Donc, si je l’enregistre dans la firebase database en tant que \\w{3}_\\d{5}
\\w{3}_\\d{5}
\w{3}_\d{5}
Pour résumer ce qui précède – j’ai besoin d’une expression régulière pour fonctionner à la fois (client et serveur), la seule solution que je vois consiste à enregistrer une expression régulière sous la forme \\w{3}_\\d{5}
barres obliques du côté java.
Pourquoi JavaScript perd-il les barres obliques inverses? Quelle est la meilleure façon de contourner cela?
Apache Commons Lang a une classe avec des fonctions d’échappement de chaîne adaptées à différentes langues. La classe s’appelle SsortingngEscapeUtils
et possède la méthode statique Ssortingng = escapeJava(Ssortingng)
.
Une ancienne version de la bibliothèque avait une méthode escapeJavaScript
, mais heureusement, escapeJava
fonctionnerait tout aussi bien.
Une solution peut être
\w{3}_\d{5} ===> [a-zA-Z0-9_]{3}_[0-9]{5}