You should always take a look at the documention
parsePhoneNumber returns …an instance of PhoneNumber class, or undefined if no phone number could be parsed…. And you can't expect that JSON.stringify(phoneNumber) will result in something that just contains a phone number.
And isPossiblePhoneNumber expects a string as parameter that is a valid phone number; the documentation states there:
This function is just a shortcut for a two-step process of "strictly" parsing a phone number and then calling
.isPossible().
So what you want to do is either:
const contact_asset = "2022032034"
const phoneNumber = libphonenumber.parsePhoneNumber(contact_asset, 'US')
if (phoneNumber) {
console.log(phoneNumber.isPossible());
}
Or
const contact_asset = "2022032034"
console.log(libphonenumber.isPossiblePhoneNumber(contact_asset, 'US'));
Answer from t.niese on Stack Overflow
» npm install libphonenumber-js
libphonenumber-js evaluates good phone number as false
Phone number formatting (libphonenumber) for Enhanced conversions GAs
What happened to libphonenumber-js?
International Phone Input with React Hook Form
You should always take a look at the documention
parsePhoneNumber returns …an instance of PhoneNumber class, or undefined if no phone number could be parsed…. And you can't expect that JSON.stringify(phoneNumber) will result in something that just contains a phone number.
And isPossiblePhoneNumber expects a string as parameter that is a valid phone number; the documentation states there:
This function is just a shortcut for a two-step process of "strictly" parsing a phone number and then calling
.isPossible().
So what you want to do is either:
const contact_asset = "2022032034"
const phoneNumber = libphonenumber.parsePhoneNumber(contact_asset, 'US')
if (phoneNumber) {
console.log(phoneNumber.isPossible());
}
Or
const contact_asset = "2022032034"
console.log(libphonenumber.isPossiblePhoneNumber(contact_asset, 'US'));
If I format it to international and then check if it's valid, its returning me a valid number, check if this helps.
let contact_asset = "2022032034"
const phoneNumber = libphonenumber.parsePhoneNumber(contact_asset, 'US')
const formattedPhoneNumber = phoneNumber.formatInternational()
if (phoneNumber) {
console.log(libphonenumber.isValidPhoneNumber(formattedPhoneNumber));
console.log(libphonenumber.isPossiblePhoneNumber(formattedPhoneNumber));
console.log(phoneNumber.formatNational());
}
For google ads lead gen, if users want to submit their phone number through a form, how do you handle the regularization of the formatting of phone numbers? Does libphonenumber need to be integrated within the form itself? Or can it be done via GTM custom html tags?
For Example: Custom html tag collects first party data from form and places it in the local storage, can the same tag do the regularization in the localstorage before pushing the data to the datalayer or is this unwanted?
» npm install libphonenumber-js-utils