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

Aye*_*azo 23 javascript regex angularjs angularjs-filter

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

Avi*_*Raj 38

string.replace不仅接受字符串作为第一个参数,而且它接受正则表达式作为第一个参数.所以放在_正则表达式分隔符中,/然后添加 g修饰符.g称为全局修饰符,它将在全局范围内进行替换.

App.filter('underscoreless', function () {
  return function (input) {
      return input.replace(/_/g, ' ');
  };
});
Run Code Online (Sandbox Code Playgroud)

  • 如果输入不是字符串,或者输入为null或未定义,则失败。 (2认同)

Joh*_*Rix 19

这是一个通用的替换过滤器替代品

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

在HTML中使用如下:

{{ addText | strReplace:'_':' ' }}
Run Code Online (Sandbox Code Playgroud)

次要注意:to由于Angular内容安全规则,参数中的任何HTML标记都会导致表达式失败.


Dam*_*n C 7

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

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

.toString()函数是为了防止 myVar 在打字稿中未输入为字符串。