[英]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.