У меня есть это регулярное выражение электронной почты, и я хотел бы сделать то же самое с именем regex, чтобы вы не могли писать числа в имени, как мне его изменить?PHP preg_match только буквы и цифры нет, может быть, объяснение
if (!preg_match("/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i", trim($_POST['email']))) {
$emailError = 'You entered an invalid email address.';
$hasError = true;
}
Я знаю, что [a-z0-9 _.-] означает, что a-z 0-9 и _. - можно использовать. Но я хочу использовать только a-z, и поэтому мой мозг ломается, потому что я не понимаю всего предложения, может ли кто-нибудь «перевести» его использовать только a-z, а не числа ни _ -.? Я бы хотел, чтобы это было изменено на имя regex, чтобы люди не могли писать числа на свое имя.
Я понимаю, что я могу написать
if (!preg_match("/^[[:alnum:]][a-z]*@[a-z]+\.[a-z]{2,4}$/i", trim($_POST['name']))) {
$nameError = 'You entered invalid characters in your name.';
$hasError = true;
}
, но для меня это не имеет никакого смысла, как я должен указать, что в регулярном выражении выше.
, но я мог бы также набрать здесь? поэтому я говорю, если он содержит 0-9, то это недействительно? но я не знаю, что это означает всех этих персонажей в предложении.
if (preg_match("/^[[:alnum:]][0-9]*@[0-9]+\.[0-9]{2,4}$/i", trim($_POST['name']))) {
$nameError = 'You entered invalid characters in your name.';
$hasError = true;
}
Я пытался исследовать о «preg_match», но я не могу найти объяснение, так что я могу сделать мой регулярное выражение для «preg_match» на мой собственный
«Только буквенно-цифровые цифры и цифры»? Вы знаете, что буквенно-цифровые номера содержат цифры, верно? (Также подумайте, что у людей могут быть пробелы, апострофы, акцентированные символы, дефисы и, возможно, другие вещи, о которых я не думал в их имени ...) –
этот вопрос не является дубликатом того, с которым вы связались. –