【问题标题】:AngularJS regex json data for img src or other selectorsimg src 或其他选择器的 AngularJS 正则表达式 json 数据
【发布时间】:2015-01-13 18:02:03
【问题描述】:

我是 Angular 的新手,所以请耐心等待......我有一个简单但肮脏的 json 结果文件,我正在拉入我的 angularjs 页面。我试图从返回的信息中找到的第一个 img 中获取 img src。这是它的设置:

var app = angular.module('myApp', ['ngSanitize']);

app.controller('MainCtrl', function ($scope) {
    $scope.data = "HEREHLKSDJFKLFJSLK:FJKFJ:KLJSL:KDfj<img src=\"http://www.sierraavalanchecenter.org/sites/default/files/forecast/201411/20141113-074138-0.png\"/ >asdfsdjflksdfj;kasdfkjs;dklfs;df";
});

app.filter('extractSrcUrl', function () {
    return function (text) {
        var output = angular.element(text).attr('src');
        return(output);
    }
});

http://jsfiddle.net/j9jst560/

如果通过这篇文章找到了过滤思路:getting img src from json data while using AngularJS ng-bind-html

如果我摆脱所有 json 数据并离开:http://www.sierraavalanchecenter.org/sites/default/files/forecast/201411/20141113-074138-0.png\"/ > 过滤器拉出src就好了。

但是,由于我的数据混乱,没有结果。我应该在控制器的某处使用正则表达式而不是运行过滤器吗?我的数据有那么差吗?

【问题讨论】:

标签: javascript json angularjs


【解决方案1】:

您可以执行以下任一操作。

修改你的选择器代码如下:

var output = angular.element('<div>' + text + '</div>').find('img')[0].attr('src')

这可能是最安全和最简单的方法。请注意,在 Angular 1.2 及以下版本中(我相信他们在 1.3 中修复了它)必须如下:

var output = angular.element(angular.element('<div>' + text + '</div>').find('img')[0]).attr('src')

另一种方法是纯粹使用正则表达式提取如下:

var output = text.match(/src="([^"]*)"/i)[1]

附带说明 - return 不是一个函数,通常它只是被称为 return output;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多