Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

243
Views
How to split string by Regex matching in JavaScript

I am already trying for over an hour and cant figure out the right way to do it. I have this Regex:

const search = /("Response)\s+\d+\s+(of)\s+\d+(":)\s+/g;

I have this string:

{"Response 1 of 2": {"Name": "Jouny", "Class": "TR23", "Message Type": "Offer", "ID Identifier": "19256", "Address": "hjfhfgjhjhj"}, "Response 2 of 2": {"Name": "Sarah", "Class": "BHT56", "Message Type": "Alarm", "ID Identifier": "89756767", "Address": "oplkdhdggd"}}

I would like to have a result like this:

[
   {"Name": "Jouny", "Class": "TR23", "Message Type": "Offer", "ID Identifier": "19256", 
        "Address": "hjfhfgjhjhj"},
   {"Name": "Sarah", "Class": "BHT56", "Message Type": "Alarm", "ID Identifier": "89756767", 
        "Address": "oplkdhdggd"}
 ]

my code:

var lines = results.toString().split(/\n/);
lines.forEach(function (item) {
    if (item.indexOf(myData) > 0) {
        var json = item.slice(item.indexOf(script) + script.length + 2).replace(PRINTABLE_CHAR, '');
        var jsonMatch = json.split(json.match(search));
        var result = jsonMatch.substr(0, jsonMatch.lastIndexOf('}')).replace(PRINTABLE_CHAR, '');
        try {
                data = JSON.parse(result);
            } catch (e) {
                console.log('ERROR');
            }
    
        }
    });
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

You can achieve the same result using Object.values

const initialObject = {"Response 1 of 2": {"Name": "Jouny", "Class": "TR23", "Message Type": "Offer", "ID Identifier": "19256", "Address": "hjfhfgjhjhj"}, "Response 2 of 2": {"Name": "Sarah", "Class": "BHT56", "Message Type": "Alarm", "ID Identifier": "89756767", "Address": "oplkdhdggd"}}


const resultObject = Object.values(initialObject);

console.log(resultObject);

about 4 years ago · Juan Pablo Isaza Report

0

This issue can be solved without regex. You can parse the first string as JSON using JSON.parse(string), then you can get the list of keys using Object.keys(json) and then do a forEach and push it to a list, which will get you what you want without having to deal with regex. I will show the code below

let string = '{"Response 1 of 2": {"Name": "Jouny", "Class": "TR23", "Message Type": "Offer", "ID Identifier": "19256", "Address": "hjfhfgjhjhj"}, "Response 2 of 2": {"Name": "Sarah", "Class": "BHT56", "Message Type": "Alarm", "ID Identifier": "89756767", "Address": "oplkdhdggd"}}'
let list = [] //this will be the list that we will return at the end
let data = JSON.parse(string) //parse the data into json

Object.keys(data).forEach(key => list.push(data[key])) //get the keys and iterate through it
return list //return the list

This should be a much better alternative to using regex. Regex was not made for what you are trying to do.

EDIT: Ah, follow @callback 's advice. Using object.values() would be a much better solution.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!