You could just try looping through all the country codes and initializing the PhoneNumber until you get !== undefined. You don't actually need to know the country code, just whether it can be parsed and it's a valid number potentially, right?
You could order this Array of country codes by their likelihood, i.e. put US first followed by other North American ones, etc. (or however it makes sense for you).
I don't think performance will be such a problem in most cases, you could test it but it's all local calculations.