Titel umgeschrieben als: „Regulärer Ausdruck, der bei Verwendung des u-Flags funktioniert, aber nicht bei Verwendung des v-Flags'
P粉684720851
P粉684720851 2023-08-25 15:47:43
0
1
470

Ich habe in diesem Regex-Muster die folgende Konsolenwarnung festgestellt:

^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9]+\.[a-zA- Z0-9]+$

Musterattributwert ^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9]+.[a-zA-Z0-9]+$< ;/code> ist mit dem RegExp-Flag u gültig, aber nicht mit dem Flag v: Ungültiger regulärer Ausdruck: /^[a -zA-Z0-9+_.-]+@[a-zA-Z0-9]+.[a-zA-Z0-9]+$/v: Die Zeichenklasse enthält ungültige Zeichen.

Ich weiß nicht, wie ich ein gültiges Regex-Muster erstellen kann, um diese Warnung zu beheben. Könnte jemand bitte den Fehler erklären und wie man ihn beheben kann?

Ich versuche, mir die Dokumentation anzusehen, kann aber nicht herausfinden, wie ich sie mit dem Flag v zum Laufen bringen kann.

P粉684720851
P粉684720851

Antworte allen (1)
P粉116631591

问题在于新引入的v标志对转义规则施加了更多限制。由于它允许字符类的减法和交集,因此字符类末尾的字面量-不能保持未转义。

因此,如果使用u标志,就没有这样的限制,而使用v标志,则有这样的限制。参见。

console.log(/^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+$/u.test("myname@somesite.com")) console.log(/^[a-zA-Z0-9+_.\-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+$/v.test("myname@somesite.com"))
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!