簡體   English   中英

如何使用 AngularJS 從提取的 JSON object 屬性中解析數據?

[英]How to parse data from an extracted JSON object property using AngularJS?

我有一個 JSON object 屬性,它是一個字符串,如下所示:

"&1 *UBIN 8 &2 *UBIN 8 &3 *UBIN 8 &4 *CHAR 10 &5 *UBIN 8 &6 *UBIN 8 &7 *UBIN 8 &8 *CCHAR *VARY 4"

我想解析這個屬性(字符串)以提取前面有 & (與號)的數字,並將每個提取的 &number 放入一個數組中。 結果將如下所示:

var array = ['&1', '&2', '&3', '&4', '&5', '&6', '&7', '&8'];

我正在使用 AngularJS。

關於如何最好地做到這一點的任何建議?

嘗試這個

var str="&1 *UBIN 8 &2 *UBIN 8 &3 *UBIN 8 &4 *CHAR 10 &5 *UBIN 8 &6 *UBIN 8 &7 *UBIN 8 &8 *CCHAR *VARY 4";

var result = $.map(str.split(" "), function(element) {
  if ( element.substring(0,1)  == "&") return element;
});

結果

["&1","&2","&3","&4","&5","&6","&7","&8"]

用於此的算法將是“split() 和 filter()”。

一種天真的方法可以檢查第一個字符是否是 & 符號:

input = "&1 *UBIN 8 &2 *UBIN 8 &3 *UBIN 8 &4 *CHAR 10 &5 *UBIN 8 &6 *UBIN 8 &7 *UBIN 8 &8 *CCHAR *VARY 4"

input.split(" ").filter(item => item.startsWith("&"))

這很好用而且速度很快,但假設只有數字可以在&之后,所以它也會返回&abc之類的項目。

您還可以使用正則表達式:

input.split(" ").filter(item => item.match(/^&\d+$/))

這速度較慢,但更健壯。 它還假設只允許全數項目,因此它將拒絕&12a之類的項目。

如果完整的要求列表不同,則可以調整兩種解決方案,因為如果以下情況不完全清楚,則問題:

  • 分隔符是空格,也可以是其他字符(例如逗號、換行符或制表符)
  • &開頭的項目已知只包含數字,或者也可以包含其他字符
  • 負數被認為是有效的或無效的

暫無
暫無

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

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