我的JavaScript如下
function DomainValidation() {
var val = document.getElementById('<%=txtDomainName.ClientID %>').value;
if (/^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:.[a-zA-Z]{2,})+$/.test(val)) {
return true;
}
else {
alert("Enter Valid Domain Name");
return false;
}
}
用于检查有效域名。它运行良好,除了当我试图输入只有两个字符的域名时,它是不接受的。由于我不知道使用正则表达式,所以我想知道我应该在哪里进行更改,以便它也接受只有两个字符的域名。
注意:-在将其标记为重复并向我展示之前,我想通知您,上面的脚本运行良好,但我希望它也接受只有两个字符的域名。
只需将{1,61}
更改为{0,61}
,这样就不会排除中间字符。
^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9](?:.[a-zA-Z]{2,})+$
演示
域名可能很棘手,
要支持t.co等域名,您可以使用以下RegExp
^(?!-)[A-Za-z0-9-]+([-.]{1}[A-z0-9]+)*.[A-Za-z}{2,6}$
因此,您可以将示例域作为第一个参数传递给下面的函数,如果输入是有效域,则它将返回true,否则将返回false。
const isValidDomainName = (supposedDomainName) => {
return /^(?!-)[A-Za-z0-9-]+([-.]{1}[a-z0-9]+)*.[A-Za-z]{2,6}$/i.test(
supposedDomainName
);
};