I've my raw data that looks like this:
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
I'd like to convert into a loopable object with keys and values something like:
var d = {
"FirstName LastName": "#ID";
"FirstName LastName": "#ID";
"FirstName LastName": "#ID";
"FirstName LastName": "#ID";
"FirstName LastName": "#ID";
"FirstName LastName": "#ID";
};
How can convert this to a javascript object? I'm thinking stringify
may be a good starting point. FirstName
have different values. They are just for the purpose of demonstration
split
the string at \\n
map
match
with the regex /(.*), (.*) \\(.*\\)\\s+(.*)/
to get first name, last name into capturing groups ( demo )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)
You can use regex to extract the data, use RegExp#exec
method to extract data using a regular expression.
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);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.