Angular 过滤器将所有下划线替换为空格

Angular filter to replace all underscores to spaces

我需要一个过滤器来将字符串中的所有下划线替换为空格

string.replace 不仅接受字符串作为第一个参数,而且还接受正则表达式作为第一个参数。因此,将 _ 放在正则表达式定界符 / 中,并同时添加 g 修饰符。 g 调用了全局修饰符,它将在全局范围内进行替换。

App.filter('underscoreless', function () {
  return function (input) {
      return input.replace(/_/g, ' ');
  };
});

这是一个通用的替换过滤器选择

App.filter('strReplace', function () {
  return function (input, from, to) {
    input = input || '';
    from = from || '';
    to = to || '';
    return input.replace(new RegExp(from, 'g'), to);
  };
});

在您的HTML中按如下方式使用它:

{{ addText | strReplace:'_':' ' }}

小提示:to 参数中的任何 HTML 标记都会因 Angular 内容安全规则而导致表达式失败。

有一个更简单的方法:

您可以在没有定义过滤器的情况下内联替换它。就是这样。

这个例子只是在视图中替换。

{{ value.replace(/_/g, ' ') }}

我希望它可以帮助您进行简单的更改,如果您想在更多地方进行更改,请使用过滤器。

这个简单的函数就可以做到:

public getCleanedString(cadena) {
    cadena = cadena.replace(/_/g, ' ');
    return cadena;
  }

在某些情况下,您可以使用 split() 函数。
.replace 函数不符合正则表达式语法(即 .replace(/,/g,'\n') 语法)

完整语法:
{{myVar.toString().split(',').join('\n')}}

.toString() function is in case myVar is not typed as String in typescript.

这是我在 angularjs 1.4.7

中使用的
<li ng-show="filter.degree.length"> 
    <label>Search by Degree :- </label> {{
        filter.degree.toString().split('|').join(', ')
    }} 
</li>