如何从IE中的URL字符串中获取域名

时间:2015-04-07 09:41:16

标签: javascript angularjs internet-explorer angularjs-filter

我有一个AngularJs过滤器返回给定URL字符串的域名。

app.filter('domain', function() {
  return function(input) {
    if (input) {
      // remove www., add http:// in not existed
      input = input.replace(/(www\.)/i, "");
      if (!input.match(/(http\:)|(https\:)/i)) {
        input = 'http://' + input;
      })

      var url = new URL(input);
      return url.hostname;
    }
    return '';
  };
});

问题是因为我不支持URL()方法,所以它在IE中不起作用。

1 个答案:

答案 0 :(得分:2)

是的,根据this document IE不支持URL()接口。但是让我们开箱吧!你的过滤器可以用更简短快捷的方式编写:

app.filter('domain', function() {
  return function(input) {
    if (input) {
      input = input.replace(/(www\.)/i, "");
      if( !input.replace(/(www\.)/i, "") ) {
        input = 'http://' + input;
      }

      var reg = /:\/\/(.[^/]+)/;
      return input.match(reg)[1];
    }
    return '';
  };
});