我難住了。
我已經搞砸了一段時間,這沒有意義。
libphonenumber-js 不會驗證應該是有效號碼的電話號碼。它每次都回傳“假”。
這看起來非常簡單明了。來自表單域的 10 位數字。
const phoneNumber = libphonenumber.parsePhoneNumber(contact_asset, 'US')
if (phoneNumber) {
console.log(libphonenumber.isPossiblePhoneNumber(JSON.stringify(phoneNumber)));
console.log(phoneNumber.formatNational());
}
對我來說奇怪的是,當我決議電話號碼并將其傳遞給驗證器時,如果它不是字串,它就會抱怨。我希望 libphonenumber 接受 parse 的輸出而不對其進行字串化。
我錯過了什么?
https://jsfiddle.net/TexEvans/sxL28j7h/4/
uj5u.com熱心網友回復:
您應該始終查看檔案
parsePhoneNumber回傳…an instance of PhoneNumber class, or undefined if no phone number could be parsed…。而且您不能指望這JSON.stringify(phoneNumber)會導致僅包含電話號碼的內容。
isPossiblePhoneNumber需要一個字串作為引數,它是一個有效的電話號碼;該檔案在那里指出:
此功能只是“嚴格”決議電話號碼然后呼叫的兩步程序的快捷方式
.isPossible()。
所以你想要做的是:
const contact_asset = "2022032034"
const phoneNumber = libphonenumber.parsePhoneNumber(contact_asset, 'US')
if (phoneNumber) {
console.log(phoneNumber.isPossible());
}
或者
const contact_asset = "2022032034"
console.log(libphonenumber.isPossiblePhoneNumber(contact_asset, 'US'));
uj5u.com熱心網友回復:
如果我將其格式化為國際格式,然后檢查它是否有效,它會回傳一個有效號碼,檢查這是否有幫助。
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());
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/489215.html
