解析

时间:2016-08-11 07:24:05

标签: javascript html string parsing

我有一个文本,我辛辛苦苦地解析为动态插入href标签。我遇到的问题是,现在标签显示为文本而不是HTML。有没有人在下面有任何解决方案示例:

  

您的密码必须介于7 http://www.dsfgsd.com和20之间   长度中的字符必须包含一个或多个大写字母,   “A-Z”必须包含一个或多个小写字母“a-z”,必须包含   一个或多个数字,“0-9”并且必须包含一个或多个   非字母数字字符。您的密码必须在7到20之间   长度中的字符必须包含一个或多个大写字母,   “A-Z”必须包含一个或多个小写字母“a-z”,必须包含   一个或多个数字,“0-9”并且必须包含一个或多个   非字母数字字符。 http://www.testing.com

如何获取显示为href链接而非文本的链接?尝试了Linkify但不断收到JQuery错误。

包含代码但不确定这是否有帮助:

dataService.getFAQS(params).then(function (data) {
        angular.extend(vm.documents, data);

        var obj={};
        _.each(vm.documents, function (comments) {

            var result = [];
            function getFirstWord(str) {
                        if (str.indexOf(' ') === -1)
                            return str;
                        else
                            return str.substr(0, str.indexOf(' '));
                    };
            function indexes(source, find) {

                for (var i = 0; i < source.length; ++i) {

                    if (source.substring(i, i + find.length) == find) {
                        result.push(i);
                    }
                }
            function formatLink (link){

                        var formattedLink =  "<a href=\""+link+"\">"+link+"<\/a>";
                        return formattedLink;

                    }

                _.each(result, function (index) {



                    var links = getFirstWord(comments.Answers.substring(index, comments.Answers.length));
                    obj[links] = formatLink(links);
                });

                return result;
            }
            if (!_.isUndefined(comments.Answers)) {

                indexes(comments.Answers, "http");

                _.mapKeys(obj, function(value, links) {

                    comments.Answers = comments.Answers.replace(links, value);

                return;
                });
            }
    });

我目前得到的内容: enter image description here

必须上传图片,因为即使Stackoverflow也会将文本转换为链接

enter image description here

我也尝试过没有“预行”

1 个答案:

答案 0 :(得分:0)

我在视图中添加了一个新的角度标记:ng-bind-html,然后根据下面的示例更新了代码。

<div ng-controller="ExampleController">
 <p ng-bind-html="myHTML"></p>
</div>


angular.module('bindHtmlExample', ['ngSanitize'])
.controller('ExampleController', ['$scope', function($scope) {
  $scope.myHTML =
     'I am an <code>HTML</code>string with ' +
     '<a href="#">links!</a> and other <em>stuff</em>';
}]);