Reputation: 446
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
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
Reputation: 29536
var m = /,\s*([^,]+)$/.exec('Some address, city, postcode');
if (m) {
var postcode = m[1];
}
Upvotes: 1
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
Reputation: 40318
pop()
will remove the last element of an array:
address.split(",").pop()
you can use this
Upvotes: 5