Hi,
I want to parse a phoneNumber in order take out country code, area code etc.
What will be the best way to do that...
e.g i have number "+919889988998"
or "+9889988998"
there can be many more cases.
Regards,
Nrapendra Sharma
Ulf Dittmer
Marshal
Joined: Mar 22, 2005
Posts: 35223
7
posted
0
Since the format is different for each country, you'd need to have rules somewhere for every country you wish to support.
Also, the examples you mention show a further complication: The "+" sign is generally used to mean that a country code follows - but that's only the case with the first number, not the second. You also need to account for the fact that numbers can differ depending on whether they are intended to be called from within a country, or from outside of a country.
You can probably search and find regular expressions which other people have used in the past for phone numbers. But as Ulf says, it is country-specific, and in Britain region-specific. London phone numbers have a different format from Manchester phone numbers which have a different format from Leeds phone numbers and they have a different format from Cambridge phone numbers and companies tend to have a different format etc etc
Nrapendra Sharma
Ranch Hand
Joined: Jun 16, 2008
Posts: 31
posted
0
i need to detect country mainly.
is there any standard implementation which can be refered for creating a phone parser ..??
Shashank Agarwal
Ranch Hand
Joined: May 20, 2004
Posts: 105
posted
0
Nrapendra Sharma wrote:i need to detect country mainly.
is there any standard implementation which can be refered for creating a phone parser ..??
See how the codes are not overlapping. eg. if Egypt is +20, there's no country with +20x
So you could put these codes in a map (code -> country), then check the first digit. If that matches a code, then that's the country. If it does not, take the second digit to get a two digit code and see if that's in the map. I don't think that's most elegant, but maybe better than getting a list of regular expressions if all you're trying to do is detect country.
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to
run our stuff on 16 servers instead of 3.