这是我验证域名的代码.
function frmValidate() {
var val = document.frmDomin;
if (/^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}$/.test(val.name.value)) {
}
else {
alert("Enter Valid Domain Name");
val.name.focus();
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
和
<form name="frmDomin" action="" method="post" onsubmit="return frmValidate();">
Domain Name : <input type="text" value="" id="name" name="name" />
</form>
Run Code Online (Sandbox Code Playgroud)
现在我进入了http://devp1.tech.in
它并提醒消息.我也想进入子域名.怎么改变这个?我不应该警惕.
wal*_*umi 21
试试这个:
^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+$
Run Code Online (Sandbox Code Playgroud)
这有点沉重:
^(?:(?:(?:[a-zA-z\-]+)\:\/{1,3})?(?:[a-zA-Z0-9])(?:[a-zA-Z0-9-\.]){1,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+|\[(?:(?:(?:[a-fA-F0-9]){1,4})(?::(?:[a-fA-F0-9]){1,4}){7}|::1|::)\]|(?:(?:[0-9]{1,3})(?:\.[0-9]{1,3}){3}))(?:\:[0-9]{1,5})?$
Run Code Online (Sandbox Code Playgroud)
将匹配:
google.com
db.my-website.co.us
ftp://container-617.databases.online
many-ports.com:7777
localhost
IPv4
192.168.3.1
127.0.0.1:3306
IPv6(部分支持)
[2001:0db8:85a3:0000:0000:8a2e:0370:7334]
[2001:db8:85a3:0:0:8a2e:370:7334]
(与以前相同)[da7a:ba5e:da7a:ba5e:da7a:ba5e:da7a:ba5e]:3306
[::1]
(本地主机回送)[::]
(未指定地址)但不是(IPv6)
2001:db8:85a3::8a2e:370:7334]
此正则表达式不支持将连续的0段折叠为IPv6地址中的'::'。(阅读:请勿在IPv6地址上尝试此操作)
小智 5
我建议阅读 O'Reilly 的指南:https : //www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch08s15.html
尝试使用https://regex101.com/来验证正则表达式的结果。
8.15. 验证域名问题您想检查一个字符串是否看起来像是一个有效的、完全限定的域名,或者在更长的文本中找到这样的域名。
解决方案检查字符串是否看起来像一个有效的域名:
Run Code Online (Sandbox Code Playgroud)^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$
正则表达式选项:不区分大小写的正则表达式风格:.NET、Java、JavaScript、PCRE、Perl、Python
Run Code Online (Sandbox Code Playgroud)\A([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}\Z
正则表达式选项:不区分大小写的正则表达式风格:.NET、Java、PCRE、Perl、Python、Ruby 在较长的文本中查找有效域名:
Run Code Online (Sandbox Code Playgroud)\b([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}\b
正则表达式选项:不区分大小写正则表达式风格:.NET、Java、JavaScript、PCRE、Perl、Python、Ruby 检查域的每个部分是否不超过 63 个字符:
Run Code Online (Sandbox Code Playgroud)\b((?=[a-z0-9-]{1,63}\.)[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,63}\b
正则表达式选项:不区分大小写的正则表达式风格:.NET、Java、JavaScript、PCRE、Perl、Python、Ruby 允许使用 punycode 表示法的国际化域名:
Run Code Online (Sandbox Code Playgroud)\b((xn--)?[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}\b
正则表达式选项:不区分大小写正则表达式风格:.NET、Java、JavaScript、PCRE、Perl、Python、Ruby 检查域的每个部分是否不超过 63 个字符,并允许使用 punycode 符号表示国际化域名:
Run Code Online (Sandbox Code Playgroud)\b((?=[a-z0-9-]{1,63}\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,63}\b
正则表达式选项:不区分大小写的正则表达式风格:.NET、Java、JavaScript、PCRE、Perl、Python、Ruby
讨论 域名具有 domain.tld 或 subdomain.domain.tld 或任意数量的附加子域的形式。...