проверяющая переменная в JavaScript - PullRequest
1 голос
/ 19 марта 2011

Привет, у меня есть поле в php, которое будет проверено в javascript с использованием i.e для электронных писем

var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;

Что мне нужно, так это проверка проверки, которая будет искать первая буква как заглавная Q тогда следующие буквы могут быть только цифрами затем следует. тогда только два числа а затем необязательное письмо то есть Q100.11 или Q100.11a

Я должен признать, что смотрю на вышеупомянутую проверку валидации электронной почты, и я понятия не имею, как она работает, но она работает;)

большое спасибо за любую помощь в этом

Steve

Ответы [ 3 ]

1 голос
/ 19 марта 2011

^ отмечает начало строки, $ соответствует концу строки. Другими словами, вся строка должна точно соответствовать этому регулярному выражению.

  • [\w-\.]+: я думаю, что вы хотите сопоставлять буквы, цифры, точки и только -. В этом случае - должен быть экранирован (\-): [\w\-\.]+. Знак плюс соответствует одному или нескольким разам.
  • @: буквальное @ совпадение
  • ([\w-]+\.)+ буквы, цифры и - допускаются один или несколько раз, с точкой после нее (между скобками). Это может происходить несколько раз (хотя бы один раз).
  • [\w-]{2,4}: должно соответствовать TLD, например com, net или org. Поскольку TLD может содержать только буквы, его следует заменить на [a-z]{2,4}. Это означает: строчные буквы могут встречаться от двух до четырех раз. Обратите внимание, что TLD может быть длиннее 4 символов.

Регулярное выражение, которое должно следовать следующим правилам:

  • капитал Q (Q)
  • с последующим одним или несколькими вхождениями цифр (\d+)
  • буквальная точка (.)
  • две цифры (\d{2})
  • одно необязательное письмо ([a-z]?)

Результат:

var regex = /Q\d+\.\d{2}[a-z]?/;

Если вам нужно сопоставить строки без учета регистра, добавьте модификатор i (case- i nsensitive):

var regex = /Q\d+\.\d{2}[a-z]?/i;

Проверка строки с помощью регулярного выражения может быть выполнена несколькими способами, один из них:

if (regex.test(str)) {
   // success
} else {
   // no match
}
1 голос
/ 19 марта 2011
var emailRegex = /^Q\d+\.\d{2}[a-zA-Z]?@([\w-]+\.)+[a-zA-Z]+$/;
var str = "Q100.11@test.com";
alert(emailRegex.test(str));
0 голосов
/ 19 марта 2011

var regex = /^Q[0-9]+\.[0-9]{2}[a-z]?$/;

+ означает один или несколько

период должен быть экранирован - \.

[0-9]{2} означает 2 цифры, такие же как \d{2}

[a-z]? означает 0 или 1 букву

Вы можете проверить свое регулярное выражение в http://regexpal.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...