簡體   English   中英

使用正則表達式分割字符串

[英]Split string using regex expression

我需要分割一個動態字符串。 該字符串可能看起來像下面的具有Code,Name和EffectDate的字符串。 或者它可能僅具有(代碼和名稱)或(代碼和效果日期)或(名稱和效果日期)。 你說對了。

{"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';

我在代碼中做了什么:

...
filters:string;
data:string[];
...
this.data = this.filters.split("\b(?:(?!value)\w)+[a-zA-Z0-9/]\b");
console.log(this.data);

我使用了這種模式\\ b(?:( ?! value)\\ w)+ [a-zA-Z0-9 /] \\ b,但仍然無法獲得理想的結果。 this.filter始終僅返回一個具有相同字符串的數組。 任何意見將是有益的。 謝謝。

更新#1:

我正在為數據表使用PrimeNg擴展,並且我將事件作為參數。 這樣,event.filters返回我一個過濾器對象列表。 我無法將對象發送到服務,它必須采用與服務一起使用的格式。

在此處輸入圖片說明

看起來像JSON。 是什么阻止您只執行data = JSON.parse(content)並使用keys(data)作為鍵和data[i]["value"]作為值來遍歷鍵值?

嘗試這樣的事情:

var data = [];
for(var i in event.filters){
  data.push({"key": i, "value": event.filters[i].value});
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM