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

时间:2015-08-11 10:27:40

标签: javascript regex angularjs angularjs-filter

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

5 个答案:

答案 0 :(得分:36)

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

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

答案 1 :(得分:18)

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

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:'_':' ' }}

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

答案 2 :(得分:1)

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

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

  

.toString()函数用于在打字稿中未将myVar键入为String的情况。

答案 3 :(得分:0)

这是我在angularjs 1.4.7中使用的

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

答案 4 :(得分:-1)

有一个更简单的方法:

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

此示例仅用于视图中的替换。

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

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