ich einfach regexp Muster verwenden E-Mail-Adresse zu bestätigen, fand ich dieses Muster:JS, RegExp, seltsame Verhalten
^[^@][email protected][^@]+\.[^@]+$
Als ich das Muster auf regex101 überprüfen Sie es wie erwartet verhält (was bedeutet, es nicht passt auf Beispiel [email protected]
).
So ist die folgende Zeile ein:
/^[^@][email protected][^@]+\.[^@]+$/.test('[email protected]'); // false
Aber:
let patt = new RegExp('^[^@][email protected][^@]+\.[^@]+$');
patt.test('[email protected]'); // true
Was ?!, habe ich auf Chrom und Firefox getestet, das gleiche Verhalten, kann jemand erklären?
'\ .' bedeutet etwas anderes in einem regulären Ausdruck wörtlichen, als es in einem String-Literal. –
'/^[^@][email protected][^@]+\.[^@]+$/.source! == '^ [^ @] + @ [^ @] + \. [^ @] + $ " – Oriol