Dies ist eine einfache Frage, denke ich.
Ich versuche, mithilfe von Regex in JavaScript nach dem Vorkommen eines Strings in einem anderen String zu suchen:
var content ="Hi, I like your Apartment. Could we schedule a viewing? My phone number is: ";
var gent = new RegExp("I like your Apartment. Could we schedule a viewing? My", "g");
if(content.search(gent) != -1){
alert('worked');
}
Das funktioniert wegen des ?
Charakters nicht ... Ich habe versucht, ihm zu entkommen \
, aber das funktioniert auch nicht. Gibt es eine andere Möglichkeit, ?
buchstäblich statt als Sonderzeichen zu verwenden?
javascript
regex
literals
Andrew
quelle
quelle
str.search("?")
Das scheint definitiv ein Fehler zu sein, da dies kein regulärer Ausdruck ist und nicht als Eins behandelt werden sollte. 🤦Antworten:
Sie müssen es mit zwei Backslashes entkommen
Weitere Informationen finden Sie hier:
http://www.trans4mind.com/personal_development/JavaScript/Regular%20Expressions%20Simple%20Usage.htm
quelle
Sie sollten einen doppelten Schrägstrich verwenden:
Warum? da in JavaScript das
\
auch verwendet wird, um Zeichen in Zeichenfolgen zu maskieren, also: "\?" wird:"?"
Und
"\\?"
wird"\?"
quelle
Sie können Ihren regulären Ausdruck mit Schrägstrichen anstelle von Anführungszeichen und einem einzelnen Backslash abgrenzen, um das Fragezeichen zu umgehen. Versuche dies:
quelle
Wenn Sie ein bekanntes Muster haben (dh Sie verwenden keine Variable zum Erstellen eines RegExp), verwenden Sie die Literal- Regex-Notation, bei der Sie nur einzelne Backslashes verwenden müssen, um speziellen Regex-Metazeichen zu entgehen:
Wenn Sie ein RegExp dynamisch erstellen müssen, verwenden Sie die
RegExp
Konstruktornotation, bei der Sie Backslashes verdoppeln MÜSSEN, damit sie einen wörtlichen Backslash bezeichnen :Und wenn Sie das
String.raw
Zeichenfolgenliteral verwenden, können Sie es unverändert verwenden\
(siehe ein Beispiel für die Verwendung eines Vorlagenzeichenfolgenliterals, in dem Sie Variablen in das Regex-Muster einfügen können):Ein Muss: RegExp: Beschreibung bei MDN.
quelle