pmiranda
pmiranda

Reputation: 8470

javaScript and Regex, replace last occurence on string with another string

I have a string like this:

const test = 'a,b,c,d'

I want to have:

a, b, c and d // each comma has an extra space at right

I tried some regex like:

test.replaceAll(',', ', ').replace(/,([^,]*)$/, '$1');

But that will remove last occurence, how could I change it for another string, in this case with and ?

Upvotes: 0

Views: 50

Answers (2)

Kinglish
Kinglish

Reputation: 23664

Here's a non regex approach

let test = 'a,b,c,d'.split(",");
let last = test.splice(-1);
test = test.join(", ") + " and " + last;
console.log(test)

Upvotes: 1

Tim Biegeleisen
Tim Biegeleisen

Reputation: 522712

Here is a regex replacement approach:

var test = 'a,b,c,d';
var output = test.replace(/,/g, ', ').replace(/,(?!.*,)/, " and");
console.log(output);

In the second replacement, the regex ,(?!.*,) targets the last comma using a negative lookahead asserting that no further commas occur in the input.

Upvotes: 1

Related Questions