str.replace在html中无法正常工作。

IT小君   2023-05-12T00:46:08

我需要在我的angular应用程序中从字符串中替换所有的_。在我的控制器中,以下代码可以得到正确的结果:

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中使用replace函数来替换所有所需的实例?

点击广告,支持我们为你提供更好的服务
评论(2)
IT小君

只需创建一个专用的过滤器:

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>
2023-05-12T00:46:26   回复
IT小君

使用angular过滤器是从html中筛选的最佳实践。

在这里看看angular-filter

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

2023-05-12T00:46:53   回复