2016-10-27 15 views
1

交換し、いくつかの質問があります。私が持っている角度フィルタ文字列は、私は、角度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 **をターゲットにできますか?ありがとう。

+0

は、データがAPIから来ていないならば、あなたは私 – devqon

+0

にディレクティブを必要とするより多くのことのように見える、あなたの」 dは正しい。 – Mike

答えて

0

これは実際に動作しているようです。

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

あなたは 'return(!! input)が必要でしょうか? $ 1 '):' ';' –

1

ますHTML入力がタグ無である場合は、 "ターゲット" の両方**のペアがあります。

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

regex demo

  • \*{2}を参照してください - **
  • ([^]*?)を - 0 + chaを捕捉するグループ1($1と呼ぶ) RS、
  • \*{2} ...最初まで可能な限り少なく - HTML要素を使用して**
+1

正規表現の使用率を上げてください。ありがとう! – Mike