typescript - Regex för e-postvalidering med separator
Jag försöker uppnå ett regex-uttryck: Jag behöver regex med e-post, jag använder det här:
\S+@\S+\.\S+
Och jag vill upprepa det X gånger med ;-avgränsare. Jag kan inte lista ut detta... Till exempel bör mönstret tillåta följande strängar:
[email
[email ;[email ;[email ;[email
Men bör till exempel inte tillåta följande sträng:
[email ;example2email.com;[email ;
Svar #1
Generellt matchas den X-separerade listan av enheter med ett mönster som ^y(?:Xy)*$.
Här finns en förbehåll relaterad till vad du matchar med y och X: \S matchar ;-tecken, så semikolonet måste "tas bort" från \S-mönstret, därför bör \S ersättas med [^\s;] i det resulterande mönstret.
Du kan använda
^[^\s;]+@[^\s;]+\.[^\s;]+(?:;[^\s;]+@[^\s;]+\.[^\s;]+)*$
Se regex-demonstrationen.
Detaljer:
^- början av strängen[^\s;]+@[^\s;]+\.[^\s;]+- ett eller flera tecken som inte är mellanslag och;,@, ett eller flera tecken som inte är mellanslag och;,.och sedan igen ett eller flera tecken som inte är mellanslag och;(?:- början på en icke-fångande grupp:;- ett semikolon
[^\s;]+@[^\s;]+\.[^\s;]+- e-postliknande mönster (beskrivet ovan)
)* - slutet på den icke-fångande gruppen, upprepa noll eller fler förekomster$ - slutet av strängen.