seriously
seriously

Reputation: 1377

Split string by first delimiter found

I have a string with multiple delimiters and I wanted to split it by the first delimiter found. I couldn't find any method to do this every method I tried will return either all the char found after the last delimiter or the char between the first 2 delimiters found. How can I get all char after the first delimiter? Any help is appreciated. Thanks in advance.

x = 'aa-bb-cc-dd'
console.log(x.split('-')[1]) // returns bb expected bb-cc-dd

console.log(x.split('-').pop()) // returns dd expected bb-cc-dd

console.log(x.split('-')[1].pop()) // something like this but obviously this wont work

Upvotes: 1

Views: 130

Answers (5)

Romylussone
Romylussone

Reputation: 815

May be too late, but :

var x = "aa-bb-cc-dd";
console.log(
  x.split("-").filter((e, i) => {
    return i != 0;
  }).join("-")
); // returns expected bb-cc-dd

Upvotes: 0

Nicholas Carey
Nicholas Carey

Reputation: 74375

Don't "split" the string: use a Regex to match what you want (or don't want):

/^([^-]*)-?(.*)$/.exec( "aa-bb-cc-dd" )?.[2]

Which returns the expected result (bb-cc-dd) (or the entire string if no separator was found). And...

/^([^-]*)-?(.*)$/.exec( "aa-bb-cc-dd" )?.[1]

gives you the first group (aa)

Upvotes: 0

Nikola Pavicevic
Nikola Pavicevic

Reputation: 23510

One way :

x = 'aa-bb-cc-dd'
function splitOnFirstDelimiter (str, del) {
  const index = str.indexOf(del);
  return index < 0 ? str : str.slice(index + del.length);
}
console.log(splitOnFirstDelimiter(x, '-'))

Upvotes: 1

Olian04
Olian04

Reputation: 6882

You can use String#indexOf with String#slice like this:

x = 'aa-bb-cc-dd'
console.log(x.slice(x.indexOf('-')+1)) // returns bb-cc-dd

Upvotes: 3

Radonirina Maminiaina
Radonirina Maminiaina

Reputation: 7004

How about using slice instead of split and then create a function which will return the expected value like this?

function splitting (str) {
    return str.slice(str.indexOf('-') + 1)
}

const r1 = splitting('aa-bb-cc-dd') // bb-cc-dd
const r2 = splitting(r1) // cc-dd
const r3 = splitting(r2) // dd

console.log(r1)
console.log(r2)
console.log(r3)

Upvotes: 1

Related Questions