Mam następujące wyrażenie regularne, które pasuje do formatu adresu e-mail:
^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$
Służy do walidacji z formularzem przy użyciu JavaScript. Jest to jednak pole opcjonalne. W związku z tym, jak mogę zmienić to wyrażenie regularne, aby pasowało do formatu adresu e-mail lub pustego ciągu?
Z mojej ograniczonej wiedzy na temat wyrażeń regularnych wydaje mi się, że \b
pasuje do pustego ciągu i |
oznacza „lub”, więc próbowałem wykonać następujące czynności, ale nie zadziałało:
^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$|\b
javascript
regex
email-validation
string
Lakoniczny
źródło
źródło
Odpowiedzi:
Aby dopasować
pattern
lub pusty ciąg, użyjWyjaśnienie
^
i$
są odpowiednio początkiem i końcem kotwic struny.|
jest używany do oznaczenia zamienników, npthis|that
.Bibliografia
Na
\b
\b
w większości smaków jest kotwicą „granicy słów”. Jest to dopasowanie o zerowej szerokości, tj. Pusty ciąg, ale dopasowuje te ciągi tylko w bardzo określonych miejscach , a mianowicie na granicach słowa.Oznacza to, że
\b
znajduje się:\w
a\W
(w dowolnej kolejności):^
a\w
\w
\w
a$
\w
Bibliografia
Używanie wyrażenia regularnego do dopasowywania adresów e-mail
Nie jest to trywialne w zależności od specyfikacji.
Powiązane pytania
źródło
Alternatywą byłoby umieszczenie wyrażenia regularnego w nawiasach nieprzechwytywanych. Następnie ustaw to wyrażenie jako opcjonalne, używając
?
kwalifikatora, który będzie szukał 0 (tj. Pustego ciągu) lub 1 wystąpienia grupy nieprzechwyconej.Na przykład:
W twoim przypadku wyrażenie regularne wyglądałoby mniej więcej tak:
Nie jest
|
potrzebny operator „lub”!Oto dokumentacja Mozilli dotycząca składni wyrażeń regularnych JavaScript.
źródło
Nie jestem pewien, dlaczego chcesz zweryfikować opcjonalny adres e-mail, ale sugeruję użycie
znaczenie
^$ empty string | or ^ beginning of string [^@\s]+ any character but @ or whitespace @ [^@\s]+ $ end of string
I tak nie zatrzymasz fałszywych e-maili, a w ten sposób nie zatrzymasz prawidłowych adresów.
źródło
\ b dopasowuje granicę słowa. Myślę, że możesz użyć ^ $ dla pustego ciągu.
źródło