Javascript 如何使用angular.js过滤器缩短url以仅显示域
我的Json中有一些很长的URL,我正试图找出使用angular的过滤器或者一些javascript只显示域的最佳方式 到 www.example.com 谢谢大家! 用于获取不带累算项的域Javascript 如何使用angular.js过滤器缩短url以仅显示域,javascript,angularjs,Javascript,Angularjs,我的Json中有一些很长的URL,我正试图找出使用angular的过滤器或者一些javascript只显示域的最佳方式 到 www.example.com 谢谢大家! 用于获取不带累算项的域 在AngularJS中,创建自己的过滤器非常容易: app.filter('domain',function(){ 返回函数(输入){ var匹配, 输出=”, URL=/\w+:\/\/([\w\.]+)/; matches=url.exec(输入); 如果(匹配!==null)输出=匹配[1]; 返回
在AngularJS中,创建自己的过滤器非常容易:
app.filter('domain',function(){
返回函数(输入){
var匹配,
输出=”,
URL=/\w+:\/\/([\w\.]+)/;
matches=url.exec(输入);
如果(匹配!==null)输出=匹配[1];
返回输出;
};
});
您可以在视图中轻松调用:
{{myUrl | domain}
这里有一个小插曲:
这是一个超级简单的正则表达式,您可能想要扩展它,但它可以工作 这个角度过滤器也可以工作 它非常酷和简单,因为它使用浏览器内置的URI解析功能,而不是依赖正则表达式
angular.module('myCoolApp')
.filter('urlFilter', function ($document) {
return function (input) {
var parser = document.createElement('a');
parser.href = input;
return parser.hostname;
};
});
您可以像这样在您的视图中实现它
{{ myLongURL | urlFilter }}
如果myLongURL
为,则它通过过滤器后将显示为example.com
。如果一开始你想要www.
,你可以这样做
www.{{myLongURL | urlFilter}}
我创建了这个过滤器
angular.module('App').filter( 'domainOfUrl',['$filter',function ($filter) {
return function ( input ) {
var urlParts = input.split('/');
return urlParts[2];
};
}]);
上述过滤器的工作原理如下:
输入:https://www.amazon.in/b/ref=s9_acss_bw_***_x
输出:www.amazon.in
如果需要,可以使用
$filter
。我的错,我的问题没有详细说明。这都是关于我在Json中获得的来自推荐人的URL。谢谢你的帮助。这就是我要找的,谢谢。只需要确保没有更好的方法可以做到这一点。上面的正则表达式没有考虑域中的连字符。括号中不需要使用连字符。根据@dmur/\w+:\/\/([\w\.-]+)/
您知道我如何将此与linky结合起来吗?我想添加一个可以包含URL的文本。在视图中,我只想在文本中显示缩短的URL作为linky。。