javascript - 字符串替换 Angular 模板逻辑中的多个字符

标签 javascript angularjs regex replace

我有 Angular 模板,使用 ng-repeat 显示项目列表,它对项目的属性进行比较。
我希望逻辑保留在模板中并立即显示结果,但下面的逻辑会抛出错误,并且无法进行 Angular 渲染。
正常替换单个字符有效,但不能替换多个字符。

<div ng-repeat="item in items">
    <p>{{item.old_name}}</p>
    <input ng-model="item.new_name">
    <span>
        {{item.old_name.replace(/ |_/g, '-') == item.new_name(/ |_/g, '-') ? "same" : "not same"}}
    </span>
</div>

如何解决这个问题?

最佳答案

我相信您的问题是使用未转义的 | 符号,我不确定您将如何在 Angular 模板中转义字符串 - 但是(imo)下面的代码片段会是更合适的解决方案(尽管不符合您原来的问题参数)。

function ctrlr ($scope) {
  $scope.items = [
    { name: 'name one', newname: 'name diff' },
    { name: 'name_two', newname: 'name two' },
    { name: 'name three', newname: 'name three' },
  ]
      
  $scope.compareString = function(str, str2) {
    return str.replace(/ |_/g, '-') === str2.replace(/ |_/g, '-') ? 'same' : 'different'
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div  ng-app ng-controller="ctrlr">
  <div ng-repeat="item in items">
    {{ compareString(item.name, item.newname) }}
  </div>
</div>

关于javascript - 字符串替换 Angular 模板逻辑中的多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35665292/

相关文章:

Python 正则表达式 : Turn "ThisFileName.txt" into "This File Name.txt"

javascript - 内联 Webpack JS 文件不起作用

angularjs - Webpack 正在加载模块两次

javascript - 如何在 AngularJS 中添加/删除字符串数组

javascript - 通过 Sails.js 服务器的 Angular.js Web 应用程序

java - String、String[] 的哈希表错误

正则表达式计数不包括空格的位数

javascript - 如何使用 useReducer 实现 react 控制输入?

javascript - 连接前端和后端

javascript - 在 javascript 数组中搜索项目的最佳方法