Это регулярное выражение для проверки подлинности электронной почты (из jquery.validate) отлично работает, за исключением того, что я думаю, что было бы немного легче для пользователя, если бы были разрешены предварительные и почтовые пробелы. Я уже обрезаю() с php, как только я получу представленную форму.
valid = this.optional(element) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_'{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(value);
Я попробовал добавить \s *, но не кубики.
valid = this.optional(element) || /\s*^[a-zA-Z0-9.!#$%&'*+\/=?^_'{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$\s*/.test(value);
Если вы хотите принять пробелы, \s * должен идти между ^...$
-anchors:
valid = this.optional(element) || /^\s* (snipped) \s*$/.test(value);
В качестве альтернативы вы можете просто обрезать() строку перед тестированием.
valid = this.optional(element) || /^ (snipped) $/.test(value.trim());
/^\s*
в начале (не/\s*^
) - и должно быть\s*$/
в конце (не$\s*/
)