web-dev-qa-db-ja.com

Angularすべてのアンダースコアをスペースに置き換えるフィルター

すべての下線を文字列内のスペースに置き換えるフィルターが必要です

23
Ayeye Brazo

string.replaceは、最初の引数として文字列を受け入れるだけでなく、最初の引数として正規表現も受け入れます。 _正規表現区切り文字内/とasloは、それに加えてg修飾子を追加します。 gはグローバル修飾子と呼ばれ、グローバルに置換を行います。

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

一般的な置換フィルターの代替品を次に示します

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コンテンツセキュリティルールにより、式が失敗します。

19
John Rix

場合によっては、split()関数を使用できます。
。replace関数は正規表現構文に準拠していません(つまり、.replace(/,/g,'\n')構文)

完全な構文:
{{myVar.toString().split(',').join('\n')}}

.toString()関数は、myVarがTypeScriptでStringとして入力されていない場合に使用します。

2
Damien C

この単純な関数はそれを行うことができます:

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