正则表达式以逗号分隔的域列表

时间:2019-03-01 04:23:05

标签: javascript regex

我正在寻找正则表达式来验证以逗号作为分隔符的域列表。例如:

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 /

感谢您的帮助

1 个答案:

答案 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));