Регулярные выражения - сложный зверь, и, как уже указывалось, в Google есть немало руководств, которые вы можете прочитать.
Чтобы ответить на вопросы ОП:
Проверьте, все ли числа: / ^ [0-9] + $ /
здесь все регулярные выражения заключены в //, очень похоже на строки, заключенные в кавычки '' или ''.
^ означает начало строки или строки (в зависимости от того, какие опции у вас есть при многострочном сопоставлении)
[...]
называются классами символов.Все, что в []
- это список одинаковых совпадающих символов в этой позиции, в данном случае 0-9
.Знак минус имеет особое значение «последовательность символов между».Так [0-9]
означает «один из 0123456789».
+
означает «1 или более» предыдущего совпадения (в данном случае [0-9]
), поэтому одно или несколько чисел
$
означает конец строки / строки.
Таким образом, в итоге найдите любую строку, которая содержит только чисел, то есть '0123a' не будет совпадать, так как [0-9]+
не соответствует ранее $
).
Проверьте, все ли буквы: / ^ [a-zA-Z] + $ /
Надеемся, [A-Za-z]
имеет смысл сейчас (A-Z
= ABCDEF ... XYZ и a-z
abcdef ... xyz)
Проверить адрес электронной почты: /^[\w-.+]+\@[a-zA-Z0-9.-] +. [a-zA-z0-9] {2,4} $ /
Не всем анализам регулярных выражений известна последовательность \w
.Javascript, java и perl, которые я знаю, поддерживают это.
Я уже охватил '/^
в начале, для этого []
матча мы ищем \w
-
.
и +
.Я думаю, что регулярное выражение неверно.Либо знак минус должен быть экранирован с помощью \
, либо он должен быть в конце []
(то есть [\w+.-]
).Но это в стороне, они в основном пытаются разрешить что-либо из abcdefghijklmnopqrstuvwxyz01234567890 -. + , поэтому fred.smith-foo+wee@mymail.com
будет совпадать, но fred.smith%foo+wee@mymail.com
не будет (%
не соответствует [\w.+-]
).
\@
- это буквальный знак ациля (он экранируется при расширении perl @ ссылка на переменную массива)
[a-zA-Z0-9.-]+
совпадает с [\w.-]+
.Очень похоже на пользовательскую часть матча, но не соответствует +
.Таким образом, это соответствует foo.com.
и google.co.
, но не my+foo.com
или my***domain.co.
.
означает совпадение с любым одним символом.Это опять-таки неверно, так как fred @ foo% com будет соответствовать как .
соответствует %*^%$£!
и т. Д. Это должно быть записано как \.
Последний класс символов [a-zA-z0-9]{2,4}
ищет от 2 до 3 или4 из a-zA-Z0-9, указанного в классе символов (очень похоже на +
, ищет "еще 1" {2,4}
означает по крайней мере 2 с максимум 4 из предыдущего совпадения. Так что 'foo' соответствует, '11' соответствует, '11111' не соответствует и 'information' не соответствует.
Регулярное выражение "tweaked" должно быть:
/ ^ [\ w. + -] + \@ [A-Za-z0-9 .-] + \. [A-Za-z0-9] {2,4} $ /