RegExp无法使用数组

时间:2016-11-11 11:16:06

标签: javascript jquery regex html5

我试过这个并且有效,

var regexp = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/;


if(self.shop_website().indexOf("http://") < 0 && self.shop_website() != ""){
    self.shop_website("http://" + self.shop_website());
}
if(regexp.test(self.shop_website()) || self.shop_website() == ""){
....
}

但是当我尝试添加数组时,

var domains =[".aero",".biz",".cat",".com",".coop",".edu",".gov",".info",".int",".jobs",".mil",".mobi",".museum"]
domains = domains.join('|');
domains = domains.replace(/\./g,'')
domains = domains + "|";
var regexp = new RegExp("/^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.("+domains+"[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/");'

这不起作用。 此代码用于验证网站网址。 例如,www.google.com,google.com.uk。

1 个答案:

答案 0 :(得分:-1)

您应该使用:

var regexp = new RegExp("^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+\\.("+domains+"[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$");
  • 使用/.../
  • 时,不应包含RegExp
  • 你需要双重逃避DOTa或你单身\
  • 的任何地方