regexp domain second level

mail@pastecode.io avatar
unknown
php
a year ago
721 B
4
Indexable
Never
<?php

$domains = [
    'domain.com', // true
    'привет.рф', // true
    'asd.asd.com', // false
    'привет.домен.рф', // false
    'xn--b1agh1afp.xn--p1ai', // false
    'xn--80aqfc.xn--b1agh1afp.xn--p1ai', // false
    'domain.luckyytttttttttasdahsjdhasjdhjasdhashdasdhaskdhaskdasdasdashdjkasdhakjshdkasda', // false
    'asdd-.com', // false
    'aaa-.asdsad.com', // false
    'asdad.-', // false
    '#&*@(#&!@.com', // false

];

$regex = '/^(?!\\-)(?:[a-zа-яё0-9\\-]{0,62}[a-zа-яё0-9])?(?:\\.(?![\\-\\.]))?(?:[a-zа-яё0-9\\-]{1,63}|xn\\-\\-[a-z0-9]{1,59})$/iu';

foreach ($domains as $domain) {
    echo $domain . ' - ' . (preg_match($regex, $domain) ? 'true' : 'false') . "\n";
}