Я пытаюсь выяснить, почему доменное имя (example1.commerce) не соответствие следующего регулярного выражения:PHP простого домен регулярного выражение
if (!preg_match('([a-z\d]){1,63}(\.)([a-z\d]){2,16}',$_POST['domain']))
{
echo '<p>Error: domain is not valid.</p>';
}
else {echo '<p>Domain looks good.</p>';}
Шаблон должен соответствовать только домену (1 ~ 63 символа) и суффикс домена (2-16 символов); нет субдомены, прописные и т.д.
Все онлайн-тестеры регулярных выражений похоже на работу, хотя
Используйте разделители регулярных выражений - ''/([a-z \ d]) {1,63} (\.) ([A-z \ d]) {2,16}/''. И, возможно, якоря и модификатор '/ i' и удалить избыточные группы:'// [az \ d] {1,63} \. [Az \ d] {2,16} $/i'' –
@ WiktorStribiżew Ah , пожалуйста, напишите как ответ, и я соглашусь. Я думаю, что это отсутствовало в чьей-то должности, когда я почему-то сочетал выражение с 'preg_match'. – John
Вы хотите сказать, что разделители регулярных выражений отсутствуют? Вот и все? Или необходим модификатор якоря/регистр, нечувствительный к регистру? Пожалуйста подтвердите. –