Heim  >  Artikel  >  Web-Frontend  >  JavaScript-Studiennotizen (8) Reguläre Ausdrücke_Grundkenntnisse

JavaScript-Studiennotizen (8) Reguläre Ausdrücke_Grundkenntnisse

WBOY
WBOYOriginal
2016-05-16 16:34:441072Durchsuche

Grundkonzepte

Ein regulärer Ausdruck ist ein Textmuster, das sowohl gewöhnliche Zeichen (zum Beispiel die Buchstaben zwischen a und z) als auch Sonderzeichen (sogenannte „Metazeichen“) enthält. Ein Muster beschreibt eine oder mehrere Zeichenfolgen, die bei der Suche nach Text übereinstimmen sollen.

Zunächst empfehlen wir mehrere Editoren für reguläre Ausdrücke
Debuggex: https://www.debuggex.com/
PyRegex:http://www.pyregex.com/
Regexper: http://www.regexper.com/

Regulärer Ausdruck ist eine Such- und Zeichenfolgenersetzungsoperation. Reguläre Ausdrücke werden häufig in Texteditoren verwendet. Beispielsweise werden reguläre Ausdrücke verwendet:
[kopieren] Überprüfen Sie, ob der Text das angegebene Merkmalswort enthält
Finden Sie die Position passender Merkmalswörter im Text
Extrahieren Sie Informationen aus Text, z. B.: Teilzeichenfolge der Zeichenfolge
Text ändern

Beschreibung: Reguläre Ausdrücke werden normalerweise für zwei Aufgaben verwendet: 1. Überprüfung, 2. Suchen/Ersetzen. Bei Verwendung zur Überprüfung ist es normalerweise erforderlich, ^ und $ vor und nach der gesamten zu überprüfenden Zeichenfolge hinzuzufügen. Ob dieses Limit beim Suchen/Ersetzen hinzugefügt werden soll, hängt möglicherweise auch von den Suchanforderungen ab Fügen Sie vor und nach b anstelle von ^ und $ hinzu. Die in dieser Tabelle aufgeführten häufig verwendeten regulären Ausdrücke unterliegen bis auf einige Einschränkungen weder vor noch nach ihnen. Bitte behandeln Sie sie entsprechend Ihren Anforderungen selbst.

Prioritätsbestellung

Nachdem ein regulärer Ausdruck erstellt wurde, kann er wie ein mathematischer Ausdruck ausgewertet werden, d. h. er kann von links nach rechts und in einer Prioritätsreihenfolge ausgewertet werden. In der folgenden Tabelle ist die Rangfolge der verschiedenen regulären Ausdrucksoperatoren von der höchsten zur niedrigsten Priorität aufgeführt:

操作符 描述
转义符
(), (?:), (?=), [] 圆括号和方括号
*, , ?, {n}, {n,}, {n,m} 限定符
^, $, anymetacharacter 位置和顺序

Regulären Ausdruck erstellen

Das Erstellen regulärer Ausdrücke ist dasselbe wie das Erstellen mathematischer Ausdrücke. Das heißt, es werden verschiedene Metazeichen und Operatoren verwendet, um kleine Ausdrücke zu größeren Ausdrücken zu kombinieren.
Ein regulärer Ausdruck kann erstellt werden, indem die verschiedenen Komponenten des Ausdrucksmusters zwischen zwei Trennzeichen platziert werden.

Bei JScript ist das Trennzeichen ein Paar Schrägstriche (/). Zum Beispiel:
/Ausdruck/

Bei VBScript wird ein Anführungszeichenpaar ("") verwendet, um die Grenzen des regulären Ausdrucks festzulegen. Zum Beispiel:

Code kopieren Der Code lautet wie folgt:

„Ausdruck“

Schauen wir uns ein Beispiel an

Code kopieren Der Code lautet wie folgt:

//Ob das übereinstimmende Konto legal ist (beginnend mit einem Buchstaben, 5–16 Bytes zulässig, alphanumerische Unterstriche zulässig

var re =new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,19}$");
if(re.test(aaaa)){
warning("Richtiges Format");
}else{
alarm("Formatfehler");
}

Die Komponenten eines regulären Ausdrucks können ein einzelnes Zeichen, eine Sammlung von Zeichen, eine Reihe von Zeichen, eine Auswahl zwischen Zeichen oder eine beliebige Kombination all dieser Komponenten sein.

Häufig verwendete reguläre Ausdrücke

Regulärer Ausdruck, der mit chinesischen Schriftzeichen übereinstimmt: [u4e00-u9fa5]
Kommentar: Chinesisch zuzuordnen ist wirklich ein Problem. Mit diesem Ausdruck wird es einfacher

Doppelbyte-Zeichen (einschließlich chinesischer Zeichen) finden: [^x00-xff]
Kommentar: Kann verwendet werden, um die Länge einer Zeichenfolge zu berechnen (die Länge eines Doppelbyte-Zeichens zählt als 2 und die Länge eines ASCII-Zeichens zählt als 1)

Regulärer Ausdruck, der mit Leerzeilen übereinstimmt: ns*r
Kommentar: Kann zum Löschen von Leerzeilen

verwendet werden

Regulärer Ausdruck, der mit HTML-Tags übereinstimmt: <(S*?)[^>]*>.*?|<.*? />
Kommentar: Die im Internet verbreitete Version ist zu schlecht. Die obige Version kann nur mit einem Teil davon übereinstimmen und ist für komplexe verschachtelte Tags immer noch machtlos.

Regulärer Ausdruck, der führende und nachfolgende Leerzeichen abgleicht: ^s*|s*$
Kommentar: Es kann zum Löschen von Leerzeichen am Anfang und Ende der Zeile (einschließlich Leerzeichen, Tabulatoren, Formularvorschüben usw.) verwendet werden, ein sehr nützlicher Ausdruck

Regulärer Ausdruck, der mit E-Mail-Adressen übereinstimmt: w ([- .]w )*@w ([-.]w )*.w ([-.]w )*
Kommentar: Sehr nützlich für die Formularvalidierung

URL für reguläre Ausdrücke: [a-zA-z]://[^s]*
Kommentar: Die im Internet verbreitete Version verfügt über sehr eingeschränkte Funktionen. Die obige Version kann grundsätzlich die Anforderungen erfüllen

Ist das übereinstimmende Konto legal (beginnend mit einem Buchstaben, 5–16 Bytes zulässig, alphanumerische Unterstriche zulässig): ^[a-zA-Z][a-zA-Z0-9_]{4,15}$
Kommentar: Sehr nützlich für die Formularvalidierung

Inländische Telefonnummern abgleichen: d{3}-d{8}|d{4}-d{7}
Kommentar: Passendes Format wie 0511-4405222 oder 021-87888822

Entspricht der Tencent QQ-Nummer: [1-9][0-9]{4,🎜> Kommentar: Tencent QQ-Konto beginnt bei 10000

Übereinstimmung mit der chinesischen Postleitzahl: [1-9]d{5}(?!d)

Kommentar: Chinas Postleitzahl ist eine 6-stellige Zahl

Passender Personalausweis: d{15}|d{18}

Kommentar: Chinas Personalausweis hat 15 oder 18 Ziffern

Übereinstimmende IP-Adresse: d .d .d .d

Kommentar: Nützlich beim Extrahieren der IP-Adresse

Bestimmte Zahlen zuordnen

[copy] ^[1-9]d*$  ​​​​​/ Positive ganze Zahlen abgleichen
^-[1-9]d*$ // Entspricht negativen Ganzzahlen
^-?[1-9]d*$  ​​​​​/Ganzzahlen abgleichen
^[1-9]d*|0$ // Übereinstimmung mit nicht negativen Ganzzahlen (positive Ganzzahlen 0)
^-[1-9]d*|0$  // Nicht-positive ganze Zahlen (negative ganze Zahlen 0) finden
^[1-9]d*.d*|0.d*[1-9]d*$  ​​​​​/Positive Gleitkommazahlen abgleichen
^-([1-9]d*.d*|0.d*[1-9]d*)$ //Negative Gleitkommazahlen abgleichen
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0 |0)$ //Gleitkommazahl abgleichen
^[1-9]d*.d*|0.d*[1-9]d*|0?.0 |0$  //Übereinstimmung mit nicht negativen Gleitkommazahlen (positive Gleitkommazahlen 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0 |0$  //Übereinstimmung mit nicht positiven Gleitkommazahlen (negativen Gleitkommazahlen). 0)

Kommentar: Sinnvoll bei der Verarbeitung großer Datenmengen, bitte bei gezielter Beantragung auf Korrekturen achten

Übereinstimmung mit einer bestimmten Zeichenfolge

[copy]^[A-Za-z] $ //Passt zu einer Zeichenfolge bestehend aus 26 englischen Buchstaben
^[A-Z] $ // Entspricht einer Zeichenfolge bestehend aus 26 englischen Großbuchstaben
^[a-z] $ // Entspricht einer Zeichenfolge bestehend aus 26 englischen Kleinbuchstaben
^[A-Za-z0-9] $ // Entspricht einer Zeichenfolge bestehend aus Zahlen und 26 englischen Buchstaben
^w $  // Entspricht einer Zeichenfolge bestehend aus Zahlen, 26 englischen Buchstaben oder Unterstrichen

Kommentare: Einige der grundlegendsten und am häufigsten verwendeten Ausdrücke

Mindmap

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