Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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对象值中的字符串_Javascript_Json_Angularjs - Fatal编程技术网

替换JavaScript对象值中的字符串

替换JavaScript对象值中的字符串,javascript,json,angularjs,Javascript,Json,Angularjs,我有一个JSON文件,其中包含多个标记。使用JSON.parse(JSON)将文件解析为对象。因为我用AngularJS和ng repeat绑定数据,所以我不希望字符串有任何HTML标记,并用新行替换它\n。如何替换所有标签?在我看来,replace()只适用于字符串 谢谢你的帮助 JSON示例 { "title": "Title", "description": "This<br />is<br />a<br />description."

我有一个JSON文件,其中包含多个

标记。使用
JSON.parse(JSON)
将文件解析为对象。因为我用AngularJS和ng repeat绑定数据,所以我不希望字符串有任何HTML标记,并用新行替换它
\n
。如何替换所有标签?在我看来,
replace()
只适用于字符串

谢谢你的帮助

JSON示例

{
    "title": "Title",
    "description": "This<br />is<br />a<br />description."
}

HTML

<div ng-repeat="item in data">
    {{item.description}}
    {{item.description}}
</div>

{{item.description}
{{item.description}

您可以在解析字符串之前替换它

var retrievedObject = JSON.parse(json.replace(/\<br \/\>/g, ''));
var retrievedObject=JSON.parse(JSON.replace(/\/g',);

更好的选择是将字符串解析为HTML并提取不带标记的文本,在将它们插入DOM之前不使用正则表达式

var retrievedObject = JSON.parse(json.replace(/\<br \/\>/g, ''));
var retrievedObject=JSON.parse(JSON.replace(/\/g',);

一个更好的选择是将字符串解析为HTML并提取不带标记的文本,而不是在将它们插入DOM之前使用正则表达式。有两种方法可以完成所需的操作。一个是css,您可以将br替换为 \n,然后在css文件中为元素提供pre-wrap的空白属性

另一个是安圭拉什语。读取绑定html的数据。您将能够实际输出br。您必须通过$sce的过滤器运行它,这样它才是可信的,但您的代码将非常简单:

<div ng-repeat="item in data">
    <span data-ng-bind-html="item.description | trusted"></span>
    <span data-ng-bind-html="item.description | trusted"></span>
</div>

有两种方法可以满足你的需求。一个是css,您可以将br替换为 \n,然后在css文件中为元素提供pre-wrap的空白属性

另一个是安圭拉什语。读取绑定html的数据。您将能够实际输出br。您必须通过$sce的过滤器运行它,这样它才是可信的,但您的代码将非常简单:

<div ng-repeat="item in data">
    <span data-ng-bind-html="item.description | trusted"></span>
    <span data-ng-bind-html="item.description | trusted"></span>
</div>

ngBindHtml
将允许您保留

并在HTML中呈现换行符。它将使用
ngSanitize
自动清理您的输入,以去除任何不在其白名单中的标记(您必须将
ngSanitize
作为依赖项带入)

视图非常简单,就像

<div ng-bind-html="item.description"></div>


您还可以使用
$sce.trustAsHtml()
告诉
ngBindHtml
盲目信任HTML而不进行清理,但只有在您完全信任其内容的情况下才能这样做(即,不针对用户提交的评论等).

ngBindHtml
将允许您保留

并在HTML中呈现换行符。它将使用
ngSanitize
自动清理您的输入,以去除任何不在其白名单中的标记(您必须将
ngSanitize
作为依赖项带入)

视图非常简单,就像

<div ng-bind-html="item.description"></div>


您也可以使用
$sce.trustAsHtml()
告诉
ngBindHtml
盲目信任HTML而不进行消毒,但只有在您完全信任其内容(即,不信任用户提交的评论等内容)的情况下才能这样做。

可能重复的可能重复的感谢您的帮助。我忘了提到我想用新行替换标签,并在你回答我的问题时编辑了我的帖子。对不起,谢谢你的帮助。我忘了提到我想用新行替换标签,并在你回答我的问题时编辑了我的帖子。对不起,谢谢,这正是我需要的!我试过
ngbind html
,但我不知道
ngSanitize
并将其作为依赖项引入。谢谢,这正是我需要的!我试过
ngbindhtml
,但我不知道
ngSanitize
并将其作为依赖项引入。