Разрешить до и после пробелов в регулярных выражениях

0

Это регулярное выражение для проверки подлинности электронной почты (из 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);
  • 0
    Это должно быть /^\s* в начале (не /\s*^ ) - и должно быть \s*$/ в конце (не $\s*/ )
  • 0
    Спасибо, @freefaller
Теги:
jquery-validate

1 ответ

1
Лучший ответ

Если вы хотите принять пробелы, \s * должен идти между ^...$ -anchors:

valid = this.optional(element) || /^\s* (snipped) \s*$/.test(value);

В качестве альтернативы вы можете просто обрезать() строку перед тестированием.

valid = this.optional(element) || /^ (snipped) $/.test(value.trim());
  • 0
    Оба работали, спасибо :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню