Heim > Artikel > Web-Frontend > JavaScript-Studiennotizen (8) Reguläre Ausdrücke_Grundkenntnisse
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:
Schauen wir uns ein Beispiel an
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
Regulärer Ausdruck, der mit HTML-Tags übereinstimmt: <(S*?)[^>]*>.*?1>|<.*? />
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
Kommentar: Chinas Postleitzahl ist eine 6-stellige Zahl
Kommentar: Chinas Personalausweis hat 15 oder 18 Ziffern
Kommentar: Nützlich beim Extrahieren der IP-Adresse
[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)
Ü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
Mindmap