str.replace在html中不起作用

时间:2016-08-30 10:16:27

标签: javascript angularjs string replace

我需要在我的角应用中替换所有_字符串。在我的控制器中,以下代码给出了正确的结果:

alert("this_is_string_".replace(/_/g, " "));

但是当我在我的html文件中放入相同的代码时,这样:

 <th class="text-center" ng-repeat="(key, value) in filteredEL[0] ">
    {{ key.replace(/_/g, ' ') }}
 </th>

它出现以下错误:

Error: [$parse:syntax] Syntax Error: Token '/' not a primary expression at column 13 of the expression [key.replace(/_/g, ' ')] starting at [/_/g, ' ')]

那么,我如何使用替换html中所有必需实例的替换函数?

2 个答案:

答案 0 :(得分:4)

只需创建专用过滤器:

angular.module('filters.stringUtils', [])

.filter('removeUnderscores', [function() {
    return function(string) {
        if (!angular.isString(string)) {
            return string;
        }
        return string.replace(/_/g, '');
    };
}])

并称之为:

<div id="{{'hi_there'| removeUnderscores}}"></div>

答案 1 :(得分:4)

使用角度过滤器是从html过滤的最佳做法。

在这里查看 angular-filter

&#13;
&#13;
.filter('customFilter', ['$filter', function ($filter) {
    return function (input) {
      if (input) {
      	return input.replace(/_/g, '');
      }
		}
}])
&#13;
<th class="text-center" ng-repeat="(key, value) in filteredEL[0] ">
    {{ key | customFilter}}
 </th>
&#13;
&#13;
&#13;