我有一个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中不起作用。
答案 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 '';
};
});