标签: regex
我想用正则表达式检查域名。我的旧代码是:
/^([a-z0-9]+([-a-z0-9]*[a-z0-9]+)?.){0,}([a-z0-9]+([-a-z0-9]*[a-z0-9]+)?){1,63}(.[a-z0-9]{2,7})+$/i
它很好,但是这段代码不会验证IDN(国际化域名),例如öü.com或öü.öü
我的域格式为:
此外,我不想要:
重要提示:用户可以添加域名;
答案 0 :(得分:3)
您可以通过a-z
a-z
\pL
答案 1 :(得分:2)
भारत.icom.museum使用Punycode编码,如RFC 3492中所定义。
भारत.icom.museum
您似乎正在使用php,基于此,您应该使用idn_to_ascii()函数转换idn,例如:
idn_to_ascii()
echo idn_to_ascii("भारत.icom.museum"); //xn--h2brj9c.icom.museum