Frage

Dies ist eine einfache Frage, denke ich.

Ich versuche, für das Auftreten einer Zeichenfolge in einer anderen Zeichenfolge mit Regex in JavaScript wie so 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 nicht, weil der ? Charakter .... Ich versuchte es mit \ zu entkommen, aber das funktioniert auch nicht. Gibt es eine andere Art und Weise ? wahrsten Sinne des Wortes statt als Sonderzeichen zu verwenden?

War es hilfreich?

Lösung

Sie müssen entkommen sie mit zwei Schrägstriche

\\?

Sehen Sie diese für weitere Informationen:

http://www.trans4mind.com/personal_development/ JavaScript / Regular% 20Expressions% 20Simple% 20Usage.htm

Andere Tipps

Sie sollten doppelten Schrägstrich verwenden:

var regex = new RegExp("\\?", "g");

Warum? weil in JavaScript ist die \ auch Zeichen in Strings zu entkommen, so: "\?" wird: "?"

Und "\\?" wird "\?"

Sie können Ihre regexp mit Schrägstrichen anstelle von Zitaten und dann ein einzelner Backslash zu entkommen das Fragezeichen begrenzen. Versuchen Sie folgendes:

var gent = /I like your Apartment. Could we schedule a viewing\?/g;

Wenn Sie eine bekannt Muster (dh Sie keine Variable verwenden, um eine RegExp zu bauen), verwenden Sie wörtliche regex Notation, wo man nur verwenden müssen Einzel Schrägstriche spezielle Regex Metazeichen zu entkommen:

var re = /I like your Apartment\. Could we schedule a viewing\?/g;
                               ^^                            ^^

Wenn Sie eine RegExp dynamisch aufbauen müssen, verwenden Sie RegExp Konstruktor Notation , wo Sie MÜSSEN Doppelschrägstriche für sie einen Backslash bezeichnen :

var questionmark_block = "\\?"; // A literal ?
var initial_subpattern = "I like your Apartment\\. Could we schedule a viewing"; // Note the dot must also be escaped to match a literal dot
var re = new RegExp(initial_subpattern + questionmark_block, "g");

A must-read: RegExp: Beschreibung bei MDN.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top