Heim  >  Artikel  >  Web-Frontend  >  Analyse der Verwendung von Mehrzeilen (/m) im JS-Modifikator für reguläre Ausdrücke

Analyse der Verwendung von Mehrzeilen (/m) im JS-Modifikator für reguläre Ausdrücke

高洛峰
高洛峰Original
2017-01-09 15:36:491176Durchsuche

Dieser Artikel analysiert die Verwendung von multiline(/m) im JS-Modifikator für reguläre Ausdrücke. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Reguläre JavaScript-Ausdrücke haben drei Modifikatoren /i, /m und /g. /i ist die am häufigsten verwendete und am besten verstandene Variante, was bedeutet, dass bei regulären Ausdrücken beim Vergleich die Groß-/Kleinschreibung nicht beachtet wird.

var regex = /abc/i;
alert(regex.test("aBc"));//true

/m stellt den Mehrzeilenmodus dar. Wenn die Zielzeichenfolge das Zeilenumbruchzeichen n nicht enthält, gibt es nur eine Zeile. dann hat der Modifikator /m keinen Sinn.

var multiline = /abc/m;
var singleline = /abc/;
//目标字符串不含换行符\n
var target = "abcabcabc";

Wenn der reguläre Ausdruck nicht ^ oder $ enthält, um mit dem Anfang oder Ende der Zeichenfolge übereinzustimmen, hat der Modifikator /m keine Bedeutung.

//正则表达式不含^或$
var multiline = /abc/m;
var singleline = /abc/;
var target = "abcab\ncabc";

Das heißt, der /m-Modifizierer existiert nur, wenn die Zielzeichenfolge n enthält und der reguläre Ausdruck ^- oder $-Effekte enthält. Wenn „multiline“ den Wert „false“ hat, stimmt „^“ mit dem Anfang der Zeichenfolge überein und „$“ mit dem Ende der Zeichenfolge. Wenn „multiline“ wahr ist, entspricht „^“ dem Anfang der Zeichenfolge und der Position nach „n“ oder „r“ und „$“ entspricht dem Ende der Zeichenfolge und der Position vor „n“ oder „r“.

var mutiline = /^abc/m;
var singleline = /^abc/;
var target = "ef\r\nabcd";
alert(mutiline.test(target));//true
alert(singleline.test(target));//false

rn stellt einen Zeilenumbruch unter Windows dar. Wenn nur 1 n vorhanden ist, hat dies den gleichen Effekt. Da das Ziel keine Zeichenfolge ist, die mit abc beginnt, ist das Ergebnis des einzeiligen Abgleichs falsch. Da das Ziel ein mehrzeiliger String ist (der n enthält) und die zweite Zeile mit abc beginnt, ist das Ergebnis des mehrzeiligen Abgleichs wahr.

Ich hoffe, dass dieser Artikel für alle hilfreich ist, die sich mit der JavaScript-Programmierung befassen.

Weitere verwandte Artikel zur Nutzungsanalyse von Multiline(/m) in JS-Modifikatoren für reguläre Ausdrücke finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn