Übereinstimmung der dynamischen Zeichenfolge mit Regex

7

Ich versuche, eine Zeichenfolge in der Zeichenfolge zu finden. Aber der folgende Code gibt immer "null" zurück. Offensichtlich ging etwas schief, aber da ich ein Neuling bin, kann ich es nicht erkennen. Ich erwarte, dass der Code "wahr" anstelle von "null" zurückgibt

%Vor%     
Fares Farhan 27.01.2010, 06:57
quelle

4 Antworten

17

Bitte setzen Sie '/' nicht, wenn Sie in der RegExp-Option

einen String übergeben

Folgendes wäre in Ordnung

%Vor%     
YOU 27.01.2010, 07:00
quelle
4

Das richtige Werkzeug für diesen Job ist nicht regex, sondern String.indexOf:

%Vor%

Dokumentation: Ссылка

    
adamJLev 27.01.2010 07:19
quelle
3

Sie mischen die beiden Möglichkeiten zum Erstellen von Regexes in JavaScript. Wenn Sie ein Regex-Literal verwenden, ist / der Regex-Begrenzer, der% modifier g folgt unmittelbar dem schließenden Begrenzer und \b ist die Escape-Sequenz für eine Wortgrenze:

%Vor%

Wenn Sie es in Form eines String-Literals für den RegExp-Konstruktor erstellen, lassen Sie die Regex-Begrenzer weg, übergeben Sie Modifizierer in Form eines zweiten String-Arguments, und Sie müssen die Backslashes in Regex-Escape-Sequenzen verdoppeln:

%Vor%

Wie Sie es tun, wird \b in ein Backspace-Zeichen konvertiert, bevor es den Regex-Compiler erreicht; Sie müssen dem umgekehrten Schrägstrich entkommen, um ihn an die String-Literal-Escape-Sequence-Verarbeitung von JavaScript zu übergeben. Oder verwenden Sie ein Regex-Literal.

    
Alan Moore 27.01.2010 07:28
quelle
0

Beachten Sie, dass '\\ b' ein einzelner Schrägstrich in einer Zeichenfolge ist, gefolgt von dem Buchstaben 'b', '\ b' ist der Escapecode \b , der nicht existiert, und wird auf 'b' reduziert.

Beachten Sie auch das Maskieren von Metazeichen in der Zeichenfolge, wenn Sie beabsichtigen, dass sie nur ihre literalen Werte abgleichen.

%Vor%     
Anonymous 27.01.2010 07:13
quelle

Tags und Links