JavaScript 中判断一个字符串是否为合法的域名,通常需要考虑以下几个方面:
.
)分隔。例如,example.com
中 example
和 com
是两个标签。.com
、.org
、.net
等。TLD 的长度通常不超过 63 个字符。以下是一个使用正则表达式验证域名合法性的 JavaScript 示例:
function isValidDomain(domain) {
const domainRegex = /^(?!-)[a-zA-Z0-9-]{1,63}(?<!-)(?:\.[a-zA-Z0-9-]{1,63}(?<!-))*\.[a-zA-Z]{2,63}$/;
return domainRegex.test(domain);
}
// 测试示例
console.log(isValidDomain("example.com")); // true
console.log(isValidDomain("example-.com")); // false
console.log(isValidDomain("-example.com")); // false
console.log(isValidDomain("example..com")); // false
console.log(isValidDomain("example.com.")); // false
punycode.js
,将非 ASCII 字符转换为 ASCII 格式。const punycode = require('punycode');
function isValidDomain(domain) {
const asciiDomain = punycode.toASCII(domain);
const domainRegex = /^(?!-)[a-zA-Z0-9-]{1,63}(?<!-)(?:\.[a-zA-Z0-9-]{1,63}(?<!-))*\.[a-zA-Z]{2,63}$/;
return domainRegex.test(asciiDomain);
}
通过以上方法,可以有效地验证域名的合法性,并确保在各种应用场景中的数据完整性和安全性。
领取专属 10元无门槛券
手把手带您无忧上云