Heim > Artikel > Web-Frontend > Wie verwende ich reguläre Ausdrücke in Javascript?
In diesem Abschnitt geht es um die Verwendung regulärer Ausdrücke in js. Beachten Sie, dass reguläre Ausdrücke ein Referenztyp sind.
Wie bei der Definition von Objekten können wir Literale verwenden, um reguläre Ausdrücke zu definieren, oder wir können reguläre Objekte verwenden, um reguläre Ausdrücke zu definieren. Der Unterschied zwischen ihnen ist Es gibt einige Unterschiede bei der verwendeten Escape-Funktion.
Wenn Sie Literale verwenden, können Sie das passende Muster schreiben oder nicht. Wenn wir es verwenden, verwenden wir normalerweise die Literal-Initialisierung Es ist einfacher und das Escapen ist nicht so kompliziert wie bei Zeichenfolgen.
// 正则表达式 /at/g 表示匹配所有at /g表示全局搜索 var pattern1 = /at/g; // 注意不用字符串 var pattern2 = RegExp('/at', 'g');
Folgendes muss maskiert werden:
Da die Attribute regulärer Objekte in Literalvariablen gesehen werden können, also Diese Methoden sind nicht sehr nützlich, kennen Sie sie einfach:
Das Ergebnis der Ausführung der exec-Methode stimmt nicht alle überein Elemente, aber Der Rückgabewert des ersten übereinstimmenden Elements ist wie im folgenden Code gezeigt (über das Konzept der Erfassungsgruppe werden wir es später verwenden). Hier wissen wir, dass jeweils nur eines übereinstimmt und zurückgegeben wird an der 0. Position des Arrays)
// exec的返回值 var text = 'mom and dad and baby'; var pattern = /mom( and dad( and baby)?)?/gi; var matches = pattern.exec(text); alert(matches.index); // 0 // 拥有index属性标识匹配项再字符串中的位置 alert(matches.input); // mom and dad and baby // 标识原字符串 alert(matches[0]); //mom and dad // 标识匹配的字符串 alert(matches[1]); //and dad //捕获组匹配的字符串 alert(matches[2]); //and baby
Bitte achten Sie in der exec-Methode auf die Auswirkung des globalen Flags /g auf die Ausführungsergebnisse. Wenn /g nicht geschrieben wird, gibt es keinen globalen Abgleich. Jede Ausführung beginnt von vorne, der Abgleich erfolgt global. Das folgende Beispiel kann diese Situation veranschaulichen: Fügen Sie /g hinzu und sehen Sie, wie das Ergebnis ändert sich
// 不写/g 每一次都是从头开始匹配 var text = 'cat, bat, sat, fat'; var pattern1 = /.at/; var matches = pattern1.exec(text); alert(matches.index); //0 alert(matches[0]); //cat alert(pattern1.lastIndex); //0 //lastIndex方法是问题的关键,注意它是pattern1对象的属性,其实就记录了这个正则匹配到哪个位置了,这里都是0说明是一直从零开始匹配 matches = pattern1.exec(text); alert(matches.index); //0 alert(matches[0]); //cat alert(pattern1.lastIndex); //0
Testmethode
var text = 'cat, bat, sat, fat'; var pattern1 = /.at/g; var matches = pattern1.exec(text); alert(matches.index); //0 alert(matches[0]); //cat alert(pattern1.lastIndex); //3 //lastIndex标识经过了这次匹配,下次匹配应该从什么位置开始进行 matches = pattern1.exec(text); alert(matches.index); //5 // 标识匹配到的位置 alert(matches[0]); //bat alert(pattern1.lastIndex); //8
Globale Attribute
Beachten Sie, dass globale Attribute sowohl mit langen als auch mit kurzen Attributnamen abgerufen werden können. Werfen wir einen Blick auf die Verwendung von langen und kurzen Attributen
Nicht unterstützte Funktionen
Verwandte Tutorial-Empfehlungen:
JavaScript-Video-TutorialDas obige ist der detaillierte Inhalt vonWie verwende ich reguläre Ausdrücke in Javascript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!