Regex 带有正则表达式的IDN(域)的验证代码
我想用正则表达式检查域。我的旧代码是:Regex 带有正则表达式的IDN(域)的验证代码,regex,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 这是可以的,但这段代码不验证诸如öü.com或öü 我的域格式是: example.com 此外,我不想: www.example.com 重要提示:用户可以添加域 有2个扩展名,如example.co.uk 您可以通过将a-z替换为\pLId
/^([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
这是可以的,但这段代码不验证诸如öü.com或öü
我的域格式是:
- example.com
- www.example.com
- 有2个扩展名,如example.co.uk
a-z
替换为\pL
Idn,例如भारत.icom.museum
在提交DNS解析之前,使用中定义的编码
似乎您正在使用php,基于此,您应该使用idn\u to\u ascii()
函数来转换idn,例如:
echo idn_to_ascii("भारत.icom.museum");
//xn--h2brj9c.icom.museum
对于php,大多数示例都使用“[a-zA-Z0-9]”代码,就像我的代码一样,但不幸的是,这段代码不支持IDN。谢谢,很难找到允许非拉丁字符的烘焙正则表达式。