我正在寻找正则表达式来验证以逗号作为分隔符的域列表。例如:
yahoo.com, google.com, facebook.net
单个域的代码为:
^ \ S * \ b((?= [a-z0-9-] {1,63}。)(xn-)?[a-z0-9] +(-[a-z0-9 ] +)。)+ [az] {2,63} \ S $ \ b /
感谢您的帮助
答案 0 :(得分:1)
我认为最好将它们拆分并使用Array.prototype.every()
every()
方法测试数组中的所有元素是否通过提供的函数实现的测试。
通过以下方式:
var validDomains = 'yahoo.com, google.com, facebook.net';
var invalidDomains = 'yahoo.c, google.com, facebook.net';
function checkDomains(domains){
return domains.split(',').every(function(d){
var reg = /[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}/;
return reg.test(d.trim());
});
}
console.log(checkDomains(validDomains));
console.log(checkDomains(invalidDomains));