Angular Filter字符串替换

时间:2016-10-27 13:57:52

标签: angularjs regex filter angular-filters

我在角度1中创建了一个过滤器并有一些问题:

我有一个这样的字符串:

**StackExchange** is a website...

,期望的结果将是:

<span class="title">StackExchange</span> is a website...

我的过滤器看起来像这样:

.filter('makeSpan', function() {
  return function(input, all) {
    return (!!input) ? input.replace(/[*]{2}/, '<span class="title">')  : '';
  }
});

当应用这个过滤器时,我得到StackExchange **是一个网站...我的问题是我该怎么办呢?我可以针对其他2 **。感谢。

2 个答案:

答案 0 :(得分:1)

如果HTML输入没有标记,您可以&#34; target&#34;两个O(log n)对:

n

请参阅regex demo

  • n log^2 n - n log n
  • ** - 第1组(称为return (!!input) ? input.replace(/\*{2}([^]*?)\*{2}/g, '<span class="title">$1</span>') : ''; )捕获任何0+字符,尽可能少地捕获第一个字符...
  • \*{2} - **

答案 1 :(得分:0)

这实际上似乎有效。

return (!!input) ? input.replace(/[*]{2}/, '<span class="title">').replace(/[*]{2}/, '</span>')  : '';