Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用angular.js过滤器缩短url以仅显示域_Javascript_Angularjs - Fatal编程技术网

Javascript 如何使用angular.js过滤器缩短url以仅显示域

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]; 返回

我的Json中有一些很长的URL,我正试图找出使用angular的过滤器或者一些javascript只显示域的最佳方式

www.example.com

谢谢大家!

用于获取不带累算项的域


在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。。