AngularJS:在输入字段中转义HTML

时间:2017-12-06 09:19:00

标签: javascript html angularjs

在输入字段中转义HTML的最佳方法是什么?例如,我搜索输入字段

<input id="search" type="text" ng-model="search" placeholder="search...">

如果有人输入类似的东西,我想逃避:

<script>alert("test123");</script>

3 个答案:

答案 0 :(得分:3)

这完全取决于您的使用案例。如果你只是想让它为用户视图逃脱它(所以基本上消毒)你可以使用angular $ sanitize&amp; $ sce for it

https://docs.angularjs.org/api/ngSanitize/service/$sanitizehttps://docs.angularjs.org/api/ng/service/$sce

但是如果你想将它存储在某个地方并希望它被转义,你可以构建一个过滤器。您可以在此处找到示例:Escape HTML text in an AngularJS directive

答案 1 :(得分:0)

您可以使用lodash _.escape([string=''])。这是一个简单而简单的解决方案。

_.escape($scope.search);

答案 2 :(得分:-1)

您可以将pattern用作输入框,例如 -

<input type='text' pattern='[a-zA-Z0-9]+'>

使用最适合您需求的表达式。