簡體   English   中英

將多行字符串轉換為 javascript 對象

[英]Convert a multi-line string into a javascript object

我的原始數據如下所示:

Last Name, First Name (Details-Details)      #ID
Last Name, First Name (Details-Details)      #ID
Last Name, First Name (Details-Details)      #ID
Last Name, First Name (Details-Details)      #ID
Last Name, First Name (Details-Details)      #ID
Last Name, First Name (Details-Details)      #ID
x1000

我想轉換成一個帶有鍵和值的可循環對象,例如:

var d = {
    "FirstName LastName": "#ID";
    "FirstName LastName": "#ID";
    "FirstName LastName": "#ID";
    "FirstName LastName": "#ID";
    "FirstName LastName": "#ID";
    "FirstName LastName": "#ID";
};

如何將其轉換為 javascript 對象? 我認為stringify可能是一個很好的起點。 FirstName具有不同的值。 它們僅用於演示目的

  • \\nsplit字符串
  • 使用map遍歷每一行
  • 使用match正則表達式/(.*), (.*) \\(.*\\)\\s+(.*)/將名字,姓氏放入捕獲組(演示
  • 使用reduce從數組創建一個對象

 let str = `LastName1, FirstName1 (Details-Details) #ID1 LastName2, FirstName2 (Details-Details) #ID2 LastName3, FirstName3 (Details-Details) #ID3` let output = str.split("\\n") .map(a => a.match(/(.*), (.*) \\(.*\\)\\s+(.*)/)) .reduce((r, [, last, first, id]) => { r[`${first} ${last}`] = id return r; },{}) console.log(output)

您可以使用正則表達式提取數據,使用RegExp#exec方法使用正則表達式提取數據。

 var str = `Last Name1, First Name1 (Details-Details) j1 Last Name2, First Name2 (Details-Details) 32 Last Name3, First Name3 (Details-Details) 3 Last Nam4e, First Name4 (Details-Details) 4 Last Name5, First Name5 (Details-Details) 5 Last Name6, First Name6 (Details-Details) 6` // pattern for matching the string let reg = /([\\w ]+)\\b\\s?,\\s?([\\w ]+)\\b\\s*\\([^)]+\\)\\s*([\\w\\d]+)/g; // variable for storing match let m; // object for the result let res = {}; // iterate over the matches while (m = reg.exec(str)) { // define object property based on the match res[`${m[2]} ${m[1]}`] = m[3]; } console.log(res);

正則表達式解釋在這里。

暫無
暫無

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

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