動的文字列を分割する必要があります。文字列は、Code、Name、EffectDateを持つ以下のように見えます。または(Code and Name)または(Code and EffectDate)または(Name and EffectDate)のみを持つことができます。あなたはポイントを得た。 (?:(?!値)私はB \このパターンを使用 正規表現を使用して文字列を分割する
... filters:string; data:string[]; ... this.data = this.filters.split("\b(?:(?!value)\w)+[a-zA-Z0-9/]\b"); console.log(this.data);
\ w)を+ [A: {"Code":{"value":"1"},"Name":{"value":"Entity1"},"EffectDate":{"value":"23/11/2016"}}
私は私のコードでやった
...
this.data[0].key ='Code'; \\something like this (desired result)
this.data[0].value = '1';
this.data[1].key = 'Name';
this.data[1].value = 'Entity1';
this.data[2].key = 'EffectDate';
this.data[2].value = '23/11/2016';
へ-zA-Z0-9 /] \ bでも、依然として目的の結果が得られませんでした。 this.filterは、常に同じ文字列を持つ配列を1つだけ返します。どんな助言も役に立つでしょう。ありがとうございました。
更新#1:
私はDataTableのためのPrimeNg拡張子を使用していると私は、パラメータとしてイベントを取得します。その中で、event.filtersは私にフィルターオブジェクトのリストを返します。オブジェクトをサービスに送ることはできません。サービスと一緒に作業するための形式である必要があります。 JSONのように見える
:
はこのような何かを試してみてください? –
迅速な対応のために@HenryWilliamsに感謝します。更新された質問の更新#1を参照してください。私はオブジェクトの名前(コード、名前、EffectDate)を取得する方法を知らない。 –
'event.filters'はすでにオブジェクトであるため、そのプロパティに直接アクセスできるはずです。 'event.filters.Code'、' event.filters.Name'などです。問題を正しく理解しているかどうかは不明です。 –