Hamza Tahir
Hamza Tahir

Reputation: 446

Find last occurrence of comma in a string using regex in javascript

I have a string which represents an address in Javascript, say, "Some address, city, postcode".

I am trying to get the 'postcode' part out.

I want to use the split method for this. I just want to know a regex expression that will find the last occurrence of ' , ' in my string.

I have tried writing expressions such as

address.split("/\,(?=[^,]*$)/"); 

and

address.split(",(?=[^,]*$)");

But these don't seem to work. Help!

Upvotes: 6

Views: 10534

Answers (4)

nnnnnn
nnnnnn

Reputation: 150030

If you want to use .split() just split on "," and take the last element of the resulting array:

var postcode = address.split(",").pop();

If you want to use regex, why not write a regex that directly retrieves the text after the last comma:

var postcode = address.match(/,\s*([^,]+)$/)[1]

The regex I've specified matches:

,          // a comma, then
\s*        // zero or more spaces, then
([^,]+)    // one or more non-comma characters at the
$          // end of the string

Where the parentheses capture the part you care about.

Upvotes: 10

akonsu
akonsu

Reputation: 29536

var m = /,\s*([^,]+)$/.exec('Some address, city, postcode');
if (m) {
    var postcode = m[1];
}

Upvotes: 1

Anirudha
Anirudha

Reputation: 32797

With double quotes it is treating it as string

Use it this way

 address.split(/,(?=[^,]*$)/);

Or

This is more readable

 var postcode=address.substr(address.lastIndexOf(","));

Upvotes: 4

PSR
PSR

Reputation: 40318

pop() will remove the last element of an array:

address.split(",").pop()  

you can use this

Upvotes: 5

Related Questions