国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
數(shù)字更改
>捕獲數(shù)字的國(guó)際撥號(hào)代碼通常很重要。在某些情況下,上下文可能意味著不需要。例如,如果您在一個(gè)國(guó)家 /地區(qū)運(yùn)營(yíng),并且將捕獲電話號(hào)碼以被人類操作員使用,則可能不需要它們。但是,對(duì)于任何遠(yuǎn)程自動(dòng)化的東西(例如發(fā)送SMS消息)或有效地驗(yàn)證它們,您需要捕獲國(guó)家前綴。
>有一種以出色的jQuery插件的形式收集電話號(hào)碼的更好,更靈活的方法。下面說明了。
>安裝
>解析數(shù)字
返回值是在Phonenumbertype子模塊中定義的常數(shù) - 您會(huì)記得我們需要將其作為pnf。
如果您需要確保一個(gè)數(shù)字不僅有效,而且還活躍,則有許多選項(xiàng)對(duì)您打開。
>非常常見的是,以單一形式要求多達(dá)三個(gè)不同的電話號(hào)碼;例如白天,晚上和手機(jī)。
>還值得記住的是,通過互聯(lián)網(wǎng)詢問電話號(hào)碼可能會(huì)遇到相當(dāng)侵入性。如果某人不愿意提供該信息,盡管您將其設(shè)置為必需的領(lǐng)域,那么他們可能會(huì)做兩件事之一:
>將jQuery插件與libphoneNumber
>
為了從電話號(hào)碼中提取國(guó)家代碼,您應(yīng)該首先使用Parse功能解析電話號(hào)碼。此功能將電話號(hào)碼作為字符串和可選的默認(rèn)區(qū)域代碼,通常是ISO 3166-1 Alpha-2國(guó)家代碼。解析后,您可以訪問Phonenumber對(duì)象并使用GetCountryCode方法作為整數(shù)獲取國(guó)家代碼。這種方法可確保處理國(guó)際電話號(hào)碼的準(zhǔn)確性,并考慮到各種區(qū)域格式
>如何在JavaScript中使用國(guó)家代碼的電話號(hào)碼驗(yàn)證?
>如何將國(guó)家代碼與JavaScript中的國(guó)家代碼分開?將國(guó)家代碼與JavaScript中的電話號(hào)碼分開是一項(xiàng)常見的任務(wù),尤其是在處理國(guó)際電話號(hào)碼時(shí)。一種實(shí)用的方法涉及使用正則表達(dá)式和弦操作。您可以定義正則表達(dá)方式以匹配國(guó)家代碼,該代碼通常表示為加號(hào),然后是一個(gè)或多個(gè)數(shù)字。正則表達(dá)式(例如(d))有效地從電話號(hào)碼中捕獲了國(guó)家代碼。
我如何在國(guó)際上格式化我的電話號(hào)碼?
首頁 web前端 js教程 在JavaScript中使用電話號(hào)碼

在JavaScript中使用電話號(hào)碼

Feb 20, 2025 am 10:39 AM

在JavaScript中使用電話號(hào)碼

>當(dāng)您從用戶那里收集數(shù)據(jù)時(shí),面臨兩個(gè)關(guān)鍵挑戰(zhàn)。收集這些信息并驗(yàn)證它。某些類型的信息很簡(jiǎn)單 - 例如,某人的年齡并不是更簡(jiǎn)單的收集和驗(yàn)證。名字并不像聽起來那樣簡(jiǎn)單,但可以為您提供邊緣案例和國(guó)際變化的餐飲(例如,顧客,手提義,甚至是具有連字符的姓氏的人),您不會(huì)出錯(cuò)(盡管很多應(yīng)用程序和大量的應(yīng)用程序和服務(wù)可以!)。電子郵件地址雖然從理論上講非常容易驗(yàn)證,但面臨著自己的挑戰(zhàn) - 但是,野外有很多正則表達(dá)不太正確。

,然后有電話號(hào)碼。這些很難。真的很難。在本文中,我將討論有關(guān)收集,驗(yàn)證和顯示電話號(hào)碼的一些挑戰(zhàn)。

鑰匙要點(diǎn)

由于其各種格式以及全球編號(hào)系統(tǒng)的動(dòng)態(tài)性質(zhì),電話號(hào)碼在編程中很復(fù)雜。

正則表達(dá)式通常不足以驗(yàn)證國(guó)際電話號(hào)碼,因?yàn)樗鼈兊膹?fù)雜性和可變性。
  • > e.164標(biāo)準(zhǔn)對(duì)于明確表示全局電話號(hào)碼至關(guān)重要,為存儲(chǔ)和系統(tǒng)使用提供了一致的格式。
  • > Google的LibphoneNumber庫是用于解析,驗(yàn)證和格式化電話號(hào)碼的強(qiáng)大工具,可用于JavaScript和Node.js Environments。
  • > INTL-TEL輸入jQuery插件通過與LibphoneNumber集成以有效處理國(guó)際電話輸入字段,從而增強(qiáng)了用戶體驗(yàn)。
  • >在收集電話號(hào)碼,確保遵守本地法規(guī)并保持用戶信任和舒適性時(shí),請(qǐng)始終考慮法律和可用性問題。
  • >
  • 為什么電話號(hào)碼有所不同
  • 也許您在想,由于電話號(hào)碼往往遵循非常嚴(yán)格的格式,例如:

…應(yīng)該簡(jiǎn)單地構(gòu)建一個(gè)簡(jiǎn)單的正則表達(dá)式來驗(yàn)證它們。實(shí)際上,這是一個(gè):

>

<br>
202-456-1111<br>
好吧,就在那里。對(duì)于初學(xué)者來說,這里只是上面數(shù)字的一些變體,所有這些都完全有效:

因此,基于這一點(diǎn),我們知道正則表達(dá)式不像我們首先想到的那樣簡(jiǎn)單 - 但這只是其中的一半。這些示例僅適用于美國(guó)的數(shù)字。當(dāng)然,如果您知道要收集的數(shù)字將用于特定國(guó)家 /地區(qū),則可以使用正則表達(dá)式。否則,這種方法將不會(huì)削減。

<br>
^(\([0-9]{3}\)|[0-9]{3}-)[0-9]{3}-[0-9]{4}$<br>
>讓我們看一下有關(guān)電話號(hào)碼的其他一些問題,以及為什么它們使我們的工作變得更加努力。

數(shù)字更改

>各種外部因素可能對(duì)電話編號(hào)有影響。整個(gè)國(guó)家來來去去,引入了新的國(guó)家前綴。數(shù)字的新分類引入了新的編號(hào)系統(tǒng) - 高級(jí)速率,本地利率,免費(fèi)電話等。當(dāng)運(yùn)營(yíng)商用完一組數(shù)字(可悲的是,高級(jí)利率)時(shí),他們只是引入了一個(gè)新的前綴。

一些變化具有巨大的影響;例如,在幾年前的英國(guó),整個(gè)區(qū)域編號(hào)系統(tǒng)都發(fā)生了巨大的變化,幾乎每個(gè)區(qū)域代碼都插入了其他“ 1”。即使那樣,首都也有一個(gè)微妙的系統(tǒng)。在全國(guó)范圍內(nèi)更改標(biāo)牌以反映變化大概是十年的。

當(dāng)然,移動(dòng)設(shè)備中有巨大和前所未有的增長(zhǎng)。不再需要電話號(hào)碼的數(shù)量在很大程度上僅限于家庭數(shù)量,而是多次??捎脭?shù)字池的持續(xù)壓力只會(huì)增加進(jìn)一步變化的可能性。

國(guó)際撥號(hào)代碼

>捕獲數(shù)字的國(guó)際撥號(hào)代碼通常很重要。在某些情況下,上下文可能意味著不需要。例如,如果您在一個(gè)國(guó)家 /地區(qū)運(yùn)營(yíng),并且將捕獲電話號(hào)碼以被人類操作員使用,則可能不需要它們。但是,對(duì)于任何遠(yuǎn)程自動(dòng)化的東西(例如發(fā)送SMS消息)或有效地驗(yàn)證它們,您需要捕獲國(guó)家前綴。

國(guó)家圖書館包含許多地理信息,其中包括國(guó)際撥號(hào)代碼。這是來自國(guó)家 /地區(qū)的摘錄。

如您所見,這表明奧地利使用國(guó)際撥號(hào)代碼43. >

那么我們?nèi)绾问褂么诵畔??好吧,使用lodash(或下劃線)的魔法,我們可以通過幾種方式查詢與代碼相關(guān)的信息。

> 例如,要找出給定的撥號(hào)代碼是否有效:>
<br>
202-456-1111<br>

當(dāng)然,

有更效率的方法可以做到這一點(diǎn)。

我們可以查找使用特定撥號(hào)代碼的國(guó)家 /地區(qū):

>

<br>
^(\([0-9]{3}\)|[0-9]{3}-)[0-9]{3}-[0-9]{4}$<br>
>最后,我們可以獲取給定國(guó)家 /地區(qū)的撥號(hào)代碼:

>

>您會(huì)在文章附帶的存儲(chǔ)庫中找到這些功能作為模塊以及單元測(cè)試。

。 但是,即使是國(guó)際撥號(hào)代碼,也并不像您想象的那樣簡(jiǎn)單。格式可以變化 - 1,43,962 1868都是有效的代碼。不一定是一對(duì)一的映射; 44例如,不僅用于英國(guó),還用于馬恩島,根西島和澤西島。
<br>
202 456 1111<br>
(202) 456 1111<br>
2024561111<br>
1-202-456-1111<br>
1-202-456-1111 x1234<br>
1-202-456-1111 ext1234<br>
1 (202) 456-1111<br>
1.202.456.1111<br>
1/202/456/1111<br>
12024561111<br>
+1 202 456 1111<br>
還必須根據(jù)撥號(hào)的位置更改數(shù)字。從國(guó)外,要撥打英國(guó)號(hào)碼,您需要丟棄帶撥號(hào)代碼44的前面零和前綴:

<br>
202-456-1111<br>
…變成…

<br>
^(\([0-9]{3}\)|[0-9]{3}-)[0-9]{3}-[0-9]{4}$<br>
>您也可以用雙零替換“”:

>

<br>
202 456 1111<br>
(202) 456 1111<br>
2024561111<br>
1-202-456-1111<br>
1-202-456-1111 x1234<br>
1-202-456-1111 ext1234<br>
1 (202) 456-1111<br>
1.202.456.1111<br>
1/202/456/1111<br>
12024561111<br>
+1 202 456 1111<br>
使事情變得更復(fù)雜,有些數(shù)字在從一個(gè)國(guó)家 /地區(qū)召喚的情況下會(huì)有所不同,具體取決于您從哪個(gè)國(guó)家 /地區(qū)撥打的國(guó)家 /地區(qū)。例如,在美國(guó),數(shù)字也必須以美國(guó)退出代碼011為前綴,因此上面的示例變?yōu)椋?anc.>>

幸運(yùn)的是,我們可以使用一種格式,使我們能夠解決這些變化。

> e.164
<br>
{<br>
"name": {<br>
"common": "Austria",<br>
"official": "Republic of Austria",<br>
// ... //<br>
},<br>
// ... //<br>
"callingCode": ["43"],<br>
// ... //<br>
},<br>
幸運(yùn)的是,對(duì)于開發(fā)人員而言,

有一個(gè)明確的,國(guó)際公認(rèn)的電話號(hào)碼,是世界上任何地方的電話號(hào)碼,名為E.164。格式分解如下:

>

電話號(hào)碼最多可以有15位數(shù)字

電話號(hào)碼的第一部分是國(guó)家代碼
    >
  • 第二部分是國(guó)家目的地代碼(NDC)
  • 最后一部分是訂戶編號(hào)(sn)
  • NDC和SN一起被共同稱為國(guó)家(重要)數(shù)字>
  • > source
  • 以前是E.164格式的數(shù)字:>

我們可以使用相同的格式,例如一個(gè)基于倫敦的英國(guó)號(hào)碼:>

>我們可以使用e.164格式表示任何有效的電話號(hào)碼。我們知道它指的是哪個(gè)國(guó)家,而且毫無意義 - 使其成為存儲(chǔ)的理想選擇。它也通常用于基于電話的服務(wù)(例如SMS提供商),正如我們稍后會(huì)看到的。

>當(dāng)然有一個(gè)漁獲。 E.164標(biāo)準(zhǔn)可能非常適合存儲(chǔ),但對(duì)于兩件事來說很可怕。首先,幾乎沒有人會(huì)以這種格式輸入或讀取其號(hào)碼。其次,就其可讀性而言,它是絕望的。但是,稍后,當(dāng)我們看一下libphonenumber時(shí),我們會(huì)發(fā)現(xiàn)有一些格式化數(shù)字的方法。
<span>var _ = require('lodash')
</span><span>, data = require('world-countries')
</span>module<span>.exports = {
</span><span>/**
</span><span>* Determines whether a given international dialing code is valid
</span><span>*
</span><span>* <span>@param string code
</span></span><span>* <span>@return bool
</span></span><span>*/
</span><span>isValid : function(code) {
</span><span>var codes = _.flatten(_.pluck(data, 'callingCode'));
</span><span>return _.contains(codes, code);
</span><span>}
</span><span>// ...
</span><span>}</span>
>

收集電話號(hào)碼

首先,讓我們看一下收集電話號(hào)碼的問題。

>
<span>/**
</span><span>* Gets a list of countries with the specified dialing code
</span><span>*
</span><span>* <span>@param string code
</span></span><span>* <span>@return array An array of two-character country codes
</span></span><span>*/
</span><span>getCountries : function(code) {
</span><span>var countryEntries = _.filter(data, function(country){
</span><span>return (_.contains(country.callingCode, code));
</span><span>})
</span><span>return _.pluck(countryEntries, 'cca2');
</span><span>}</span>
> html5和“ tel”輸入

> HTML5引入了一種新的“ TEL”輸入類型。但是,由于格式的變化問題,它實(shí)際上并沒有對(duì)用戶可以輸入的內(nèi)容施加任何限制,也不會(huì)以與電子郵件元素相同的方式執(zhí)行任何驗(yàn)證。但是,有一些優(yōu)點(diǎn) - 在移動(dòng)網(wǎng)站上使用用戶的電話鍵盤通常會(huì)顯示,而不是常規(guī)的鍵盤布局。>

您可以使用單個(gè)元素來收集一個(gè)數(shù)字:

或者,您可以將數(shù)字分解為單獨(dú)的元素:

<br>
202-456-1111<br>

>瀏覽器支持非常好(例如,Chrome 6,F(xiàn)irefox 4,Safari 5,即10),但是即使在較舊的瀏覽器中,它也只會(huì)落到一個(gè)普通的舊文本字段。

>我們是否應(yīng)該確定正則表達(dá)式足夠 - 請(qǐng)記住,存在問題 - 然后我們可以使用模式屬性添加一些驗(yàn)證:

<br>
^(\([0-9]{3}\)|[0-9]{3}-)[0-9]{3}-[0-9]{4}$<br>
>屏蔽輸入

>掩蓋的輸入是限制用戶輸入或提供預(yù)期格式的提示的常見技術(shù)。但是,再說一次,除非您確信數(shù)字總是適合一個(gè)特定國(guó)家,否則很難迎合國(guó)際變化。但是,通過做出假設(shè)來惹惱用戶是一回事 - 要求非US用戶提供狀態(tài)和郵政編碼。使一個(gè)完全無法使用的形式是另一回事,例如,強(qiáng)迫人們以某種??國(guó)家的格式提供數(shù)字。

但是,如果您知道某些數(shù)字將在特定范圍內(nèi),則它們可以有效。這是給我們電話號(hào)碼的蒙版輸入的示例。

更好的方法

>有一種以出色的jQuery插件的形式收集電話號(hào)碼的更好,更靈活的方法。下面說明了。

在JavaScript中使用電話號(hào)碼>您也可以在此處進(jìn)行現(xiàn)場(chǎng)演示。

>用法很簡(jiǎn)單 - 確保您已包括jQuery,庫和CSS文件,并且Flag Sprite可用并從CSS中正確引用 - 您會(huì)在build/img/flags.png中找到它。 。

接下來,創(chuàng)建一個(gè)元素:

最后,將其注入如下:
<br>
202 456 1111<br>
(202) 456 1111<br>
2024561111<br>
1-202-456-1111<br>
1-202-456-1111 x1234<br>
1-202-456-1111 ext1234<br>
1 (202) 456-1111<br>
1.202.456.1111<br>
1/202/456/1111<br>
12024561111<br>
+1 202 456 1111<br>

>有關(guān)配置選項(xiàng)的完整列表,請(qǐng)咨詢文檔。稍后,我們將查看Utilsscript選項(xiàng),但首先,我們需要深入研究另一個(gè)有用的庫。
<br>
{<br>
"name": {<br>
"common": "Austria",<br>
"official": "Republic of Austria",<br>
// ... //<br>
},<br>
// ... //<br>
"callingCode": ["43"],<br>
// ... //<br>
},<br>
介紹性libphonenumber

幸運(yùn)的是,我們?cè)S多驗(yàn)證和格式的困境都有解決方案。 Google的LibphoneNumber庫最初是為Android操作系統(tǒng)開發(fā)的,提供了各種方法和用戶用于使用電話號(hào)碼的方法。更好的是,它已從Java移植到JavaScript,因此我們可以在Web或Node.js應(yīng)用程序中使用它。

>

>安裝

>您可以從項(xiàng)目主頁上下載庫,如您所期望的 - Google Code。

您也可以通過NPM獲得它。這是項(xiàng)目頁面,然后從命令行安裝:

您也可以使用Bower安裝它:

<span>var _ = require('lodash')
</span><span>, data = require('world-countries')
</span>module<span>.exports = {
</span><span>/**
</span><span>* Determines whether a given international dialing code is valid
</span><span>*
</span><span>* <span>@param string code
</span></span><span>* <span>@return bool
</span></span><span>*/
</span><span>isValid : function(code) {
</span><span>var codes = _.flatten(_.pluck(data, 'callingCode'));
</span><span>return _.contains(codes, code);
</span><span>}
</span><span>// ...
</span><span>}</span>

如果您正在考慮在前端項(xiàng)目中使用它,但是要警告 - 即使縮小和壓縮,它也超過200kb。

>解析數(shù)字

為了演示庫的主要功能,我將假設(shè)您正在編寫Node.js應(yīng)用程序。您可以在存儲(chǔ)庫中找到一些補(bǔ)充本文的示例代碼。

>

首先,導(dǎo)入Phoneutil:

現(xiàn)在,您可以使用其parse()方法來解釋電話號(hào)碼:>
<br>
202-456-1111<br>

我們可以做很多事情。讓我們首先從圖書館導(dǎo)入一些常數(shù)。將您的要求聲明更改為以下內(nèi)容:

<br>
^(\([0-9]{3}\)|[0-9]{3}-)[0-9]{3}-[0-9]{4}$<br>

現(xiàn)在我們可以執(zhí)行以下操作:

>
<br>
202 456 1111<br>
(202) 456 1111<br>
2024561111<br>
1-202-456-1111<br>
1-202-456-1111 x1234<br>
1-202-456-1111 ext1234<br>
1 (202) 456-1111<br>
1.202.456.1111<br>
1/202/456/1111<br>
12024561111<br>
+1 202 456 1111<br>

的輸出將如下:

<br>
{<br>
"name": {<br>
"common": "Austria",<br>
"official": "Republic of Austria",<br>
// ... //<br>
},<br>
// ... //<br>
"callingCode": ["43"],<br>
// ... //<br>
},<br>

現(xiàn)在嘗試在沒有國(guó)際撥號(hào)代碼的情況下解析數(shù)字:>

<span>var _ = require('lodash')
</span><span>, data = require('world-countries')
</span>module<span>.exports = {
</span><span>/**
</span><span>* Determines whether a given international dialing code is valid
</span><span>*
</span><span>* <span>@param string code
</span></span><span>* <span>@return bool
</span></span><span>*/
</span><span>isValid : function(code) {
</span><span>var codes = _.flatten(_.pluck(data, 'callingCode'));
</span><span>return _.contains(codes, code);
</span><span>}
</span><span>// ...
</span><span>}</span>

這將拋出以下例外:

<span>/**
</span><span>* Gets a list of countries with the specified dialing code
</span><span>*
</span><span>* <span>@param string code
</span></span><span>* <span>@return array An array of two-character country codes
</span></span><span>*/
</span><span>getCountries : function(code) {
</span><span>var countryEntries = _.filter(data, function(country){
</span><span>return (_.contains(country.callingCode, code));
</span><span>})
</span><span>return _.pluck(countryEntries, 'cca2');
</span><span>}</span>

這是因?yàn)闆]有解釋數(shù)字是為哪個(gè)國(guó)家,就無法解釋。 parse()方法采用可選的第二個(gè)參數(shù),即ISO 3166-1 alpha-2(即兩個(gè)字符)國(guó)家代碼。

如果您再次嘗試這條線,但是這次將“我們”作為第二個(gè)論點(diǎn),您會(huì)發(fā)現(xiàn)結(jié)果與以前一樣:

<span>/**
</span><span>* Gets the dialing codes for a given country
</span><span>*
</span><span>* <span>@param string country The two-character country code
</span></span><span>* <span>@return array An array of strings representing the dialing codes
</span></span><span>*/
</span><span>getCodes : function(country) {
</span><span>// Get the country entry
</span><span>var countryData = _.find(data, function(entry) {
</span><span>return (entry.cca2 == country);
</span><span>});
</span><span>// Return the code(s)
</span><span>return countryData.callingCode;
</span><span>}</span>

>您也可以使用這些格式來玩法;所有這些也將起作用:

<br>
020 7925 0918<br>

解釋英國(guó)編號(hào):

<br>
+44 20 7925 0918<br>

>這將輸出以下內(nèi)容:

<br>
0044 20 7925 0918<br>

>分解一個(gè)數(shù)字后,您可以對(duì)其進(jìn)行驗(yàn)證 - 正如我們?cè)谙乱徊糠种兴吹降摹?/p>

驗(yàn)證一個(gè)數(shù)字

<br>
011 44 20 7925 0918<br>
>驗(yàn)證遵循類似的模式;同樣,有第二個(gè)可選的論點(diǎn),但是如果沒有暗示該國(guó)家 /

這是一些有效數(shù)字的示例,其中將國(guó)家代碼作為第二個(gè)參數(shù)提供,或者包含在第一個(gè)參數(shù)中:

如果您不提供國(guó)家代碼,或者不含義,則會(huì)遇到與以前相同的錯(cuò)誤:

以下是一些示例,其中驗(yàn)證失敗,返回false:
<br>
+12024561111<br>

但是,請(qǐng)警告

,因?yàn)橐粋€(gè)無效的數(shù)字可能會(huì)引發(fā)例外:

<br>
+442079250918<br>

確定數(shù)字類型

有時(shí),知道電話號(hào)碼的 type 很有用。例如,您可能希望確保為您提供了一個(gè)手機(jī)號(hào)碼 - 也許您打算發(fā)送SMS消息,例如實(shí)施兩因素身份驗(yàn)證 - 或嘗試淘汰高級(jí)費(fèi)率號(hào)。

庫的getNumberType()函數(shù)就是這樣。讓我們看看
<span><span><span><input</span> type<span>="tel"</span> name<span>="number"</span>></span></span>

該函數(shù)將解析的電話號(hào)碼作為參數(shù):

<span><!-- area code and number -->
</span><span><span><span><input</span> type<span>="tel"</span> name<span>="number"</span>></span>
</span><span><!-- country code, area code and number -->
</span><span><span><span><input</span> type<span>="tel"</span> name<span>="country"</span> size<span>="4"</span>></span> <span><span><input</span> type<span>="tel"</span> name<span>="area"</span> size<span>="6"</span>></span> <span><span><input</span> type<span>="tel"</span> name<span>="number"</span> size<span>="8"</span>></span>
</span><span><!-- US-style -->
</span>(<span><span><span><input</span> type<span>="tel"</span> size<span>="3"</span>></span>) <span><span><input</span> type<span>="tel"</span> size<span>="3"</span>></span> - <span><span><input</span> type<span>="tel"</span> size<span>="4"</span>></span></span>

返回值是在Phonenumbertype子模塊中定義的常數(shù) - 您會(huì)記得我們需要將其作為pnf。

作為一個(gè)例子,讓我們查詢有關(guān)的數(shù)字是移動(dòng)電話還是固定行:>

<br>
202-456-1111<br>
>似乎是主題的主題,自然會(huì)有一個(gè)收獲。有時(shí),即使是LibphoneNumber庫也無法確定。例如,我們的數(shù)字不能輕易區(qū)分;因此,常數(shù)pnt.fixed_line_or_mobile。

>我們只需要更改我們的示例代碼即可反映這種不確定性:>

也有許多其他可能性。這是當(dāng)前的完整列表:
<br>
^(\([0-9]{3}\)|[0-9]{3}-)[0-9]{3}-[0-9]{4}$<br>

pnt.fixed_line
  • > pnt.mobile
  • pnt.fixed_line_or_mobile
  • > pnt.toll_free
  • pnt.prem_rate
  • > pnt.shared_cost
  • pnt.voip
  • > pnt.personal_number
  • > pnt.pager
  • > pnt.uan
  • > pnt.inknown
  • 如您所見,PNT.Inknown反映了這樣一個(gè)事實(shí),即我們不一定會(huì)以任何確切的方式收集任何信息。因此,總而言之,盡管此功能可以作為快速初始檢查有用,但我們不能依靠它。
  • 是服務(wù)中的數(shù)字嗎?
>

>有很多電話號(hào)碼可以驗(yàn)證,但不使用。他們可能已經(jīng)斷開連接,尚未分配,或者也許已經(jīng)放下了廁所。

如果您需要確保一個(gè)數(shù)字不僅有效,而且還活躍,則有許多選項(xiàng)對(duì)您打開。

>

>一種方法是要求用戶確認(rèn)其電話號(hào)碼,與您可能要求用戶確認(rèn)其電子郵件地址的方式幾乎相同。您可以使用Twilio之類的服務(wù)發(fā)送SMS,甚至可以打電話。

>

這是一個(gè)非常簡(jiǎn)單的代碼段,用于使用Twilio通過SMS生成和發(fā)送確認(rèn)代碼

>然后,要求用戶將代碼輸入您的Web應(yīng)用程序中的表單以驗(yàn)證它是一個(gè)瑣碎的練習(xí) - 或者您甚至可以允許人們通過回復(fù)消息來驗(yàn)證其數(shù)字。

>也有(付費(fèi))服務(wù),可以檢查一個(gè)數(shù)字是否實(shí)時(shí)為您服務(wù),例如Byteplant。

其他問題

<br>
202 456 1111<br>
(202) 456 1111<br>
2024561111<br>
1-202-456-1111<br>
1-202-456-1111 x1234<br>
1-202-456-1111 ext1234<br>
1 (202) 456-1111<br>
1.202.456.1111<br>
1/202/456/1111<br>
12024561111<br>
+1 202 456 1111<br>
法律

與任何個(gè)人信息一樣,也有很多法律問題要注意。例如,在英國(guó),電話偏好服務(wù)(TPS)是全國(guó)電話號(hào)碼登記冊(cè),已由不希望接收營(yíng)銷通信的人們進(jìn)行了解釋。有付費(fèi)服務(wù)提供API來檢查針對(duì)此登記冊(cè)的數(shù)字。

>可用性注意事項(xiàng)

>非常常見的是,以單一形式要求多達(dá)三個(gè)不同的電話號(hào)碼;例如白天,晚上和手機(jī)。

>還值得記住的是,通過互聯(lián)網(wǎng)詢問電話號(hào)碼可能會(huì)遇到相當(dāng)侵入性。如果某人不愿意提供該信息,盡管您將其設(shè)置為必需的領(lǐng)域,那么他們可能會(huì)做兩件事之一:

  • 試圖“欺騙”驗(yàn)證。根據(jù)方法,它們可能會(huì)鍵入“ Ex Directory”或輸入無效的數(shù)字,例如僅包含數(shù)字的數(shù)字。
  • >
  • 走開。

>將jQuery插件與libphoneNumber

組合

>您可能還記得jQuery插件具有一個(gè)名為utilsscript的較神秘的選項(xiàng)。

此選項(xiàng)使我們能夠利用LibphoneNumber的驗(yàn)證和格式化功能。選擇一個(gè)國(guó)家(使用下拉列表或鍵入撥號(hào)代碼)之后,它將將文本場(chǎng)轉(zhuǎn)換為蒙版的輸入,以反映該國(guó)家的編號(hào)格式。

該插件包含libphoneNumber包裝的版本;如下:

<br>
202-456-1111<br>
正如我之前提到的,請(qǐng)記住,由于LibphoneNumber庫的文件大小,應(yīng)謹(jǐn)慎使用此方法。但是,在構(gòu)造函數(shù)中在此處引用它確實(shí)意味著可以按需加載。

顯示電話號(hào)碼

>我們研究了如何使用pnf.international和pnf.national等格式顯示在顯示更“友好”時(shí)如何格式化數(shù)字。

>我們還可以使用TEL和CALLTO協(xié)議將超鏈接添加到電話號(hào)碼上,這些電話號(hào)碼在移動(dòng)網(wǎng)站上特別有用 - 允許用戶直接從網(wǎng)頁撥打一個(gè)數(shù)字。

> 為此,我們需要鏈接本身的e.164格式 - 例如:

>

當(dāng)然,您可以使用LibphoneNumber庫的格式()方法來渲染e.164版本(pnf.e164)和更具用戶友好的顯示版本。

microdata

>我們還可以使用MicroDATA以語義標(biāo)記電話號(hào)碼。這是一個(gè)例子;請(qǐng)注意使用itemprop =“電話”來標(biāo)記鏈接:
<br>
^(\([0-9]{3}\)|[0-9]{3}-)[0-9]{3}-[0-9]{4}$<br>
>

摘要

在本文中,我們打開了黃蜂巢是電話號(hào)碼。到目前

我們已經(jīng)研究了一些用于收集數(shù)字的方法 - “ TEL”輸入類型,掩蓋輸入和INTL-TEL輸入jQuery插件。 然后,我們查看了有關(guān)驗(yàn)證的一些問題,以及為什么諸如正則表達(dá)式之類的常見方法通常不足,尤其是當(dāng)您國(guó)際化時(shí)。

我們看了Google的LibphoneNumber圖書館;使用它來解析,驗(yàn)證,顯示和確定電話號(hào)碼的類型。

>
<br>
202 456 1111<br>
(202) 456 1111<br>
2024561111<br>
1-202-456-1111<br>
1-202-456-1111 x1234<br>
1-202-456-1111 ext1234<br>
1 (202) 456-1111<br>
1.202.456.1111<br>
1/202/456/1111<br>
12024561111<br>
+1 202 456 1111<br>
>我們將INTL-TEL輸入插件與LibphoneNumber相結(jié)合,以獲得更好的用戶體驗(yàn),盡管它以性能為代價(jià)。

>

>最后,我們研究了如何在HTML中標(biāo)記電話號(hào)碼。我將為處理電話號(hào)碼提出一些建議:>
    除非您僅在一個(gè)國(guó)家 /地區(qū)開展業(yè)務(wù),否則請(qǐng)注意國(guó)際差異。
  • 使用謹(jǐn)慎的蒙版輸入。
  • >
  • 對(duì)基于正則表達(dá)的驗(yàn)證非常小心。
  • >在可能的情況下,使用e.164進(jìn)行存儲(chǔ)。
  • 使用Google的LibphoneNumber圖書館。
  • 顯示數(shù)字時(shí),將其格式化時(shí),使用TEL:或CALLTO:鏈接類型,并使用Microdata。
  • 關(guān)于JavaScript中的電話號(hào)碼的常見問題
  • >如何從JavaScript中的電話號(hào)碼中獲取國(guó)家代碼?

>

>從JavaScript中的電話號(hào)碼中提取國(guó)家代碼,您可以利用Google提供的LibphoneNumber庫。該庫是用于解析,格式化和驗(yàn)證電話號(hào)碼的強(qiáng)大工具,使其成為準(zhǔn)確提取國(guó)家代碼的理想選擇。要開始,您需要使用NPM安裝庫,然后將其導(dǎo)入到JavaScript文件中。導(dǎo)入后,您可以使用Phonenumberutil類有效地使用電話號(hào)碼。

為了從電話號(hào)碼中提取國(guó)家代碼,您應(yīng)該首先使用Parse功能解析電話號(hào)碼。此功能將電話號(hào)碼作為字符串和可選的默認(rèn)區(qū)域代碼,通常是ISO 3166-1 Alpha-2國(guó)家代碼。解析后,您可以訪問Phonenumber對(duì)象并使用GetCountryCode方法作為整數(shù)獲取國(guó)家代碼。這種方法可確保處理國(guó)際電話號(hào)碼的準(zhǔn)確性,并考慮到各種區(qū)域格式

>

>如何在JavaScript中使用國(guó)家代碼的電話號(hào)碼驗(yàn)證?

>由于各種國(guó)際電話號(hào)碼格式,在JavaScript中驗(yàn)證使用國(guó)家代碼的電話號(hào)碼可能是一項(xiàng)復(fù)雜的任務(wù)。為了確保準(zhǔn)確的驗(yàn)證,一種有效的方法是使用Google使用“ LibphoneNumber”庫。該庫提供了用于解析,格式化和驗(yàn)證電話號(hào)碼的全面工具,使其成為為此目的的可靠選擇。
要開始使用,您需要使用NPM安裝“ LibphoneNumber”庫,然后將其導(dǎo)入到JavaScript文件中。導(dǎo)入后,您可以利用圖書館的Phonenumberutil類執(zhí)行電話號(hào)碼驗(yàn)證。具體來說,ISVALIDNUMBER函數(shù)允許您驗(yàn)證一個(gè)解析的電話號(hào)碼,如果該號(hào)碼有效或錯(cuò)誤,則返回true。通過使用圖書館的功能來解析電話號(hào)碼,您可以確保其遵守與所提供的國(guó)家 /地區(qū)代碼相關(guān)的特定格式和規(guī)則。
此方法為使用國(guó)家 /地區(qū)代碼驗(yàn)證電話號(hào)碼提供了強(qiáng)大的解決方案,提供了準(zhǔn)確的手段處理具有不同格式和標(biāo)準(zhǔn)的國(guó)際電話號(hào)碼。通過實(shí)施“ LibphoneNumber”庫,您可以顯著提高JavaScript應(yīng)用程序中電話號(hào)碼驗(yàn)證的精確性和可靠性。

>如何將國(guó)家代碼與JavaScript中的國(guó)家代碼分開?將國(guó)家代碼與JavaScript中的電話號(hào)碼分開是一項(xiàng)常見的任務(wù),尤其是在處理國(guó)際電話號(hào)碼時(shí)。一種實(shí)用的方法涉及使用正則表達(dá)式和弦操作。您可以定義正則表達(dá)方式以匹配國(guó)家代碼,該代碼通常表示為加號(hào),然后是一個(gè)或多個(gè)數(shù)字。正則表達(dá)式(例如(d))有效地從電話號(hào)碼中捕獲了國(guó)家代碼。

>

一旦您擁有正則表達(dá)式模式,就可以使用EXEC方法將其應(yīng)用于電話號(hào)碼。 EXEC方法返回包含電話號(hào)碼的匹配部分和任何捕獲組的數(shù)組。在這種情況下,可以從數(shù)組中的第一組訪問捕獲的國(guó)家代碼(索引1)。通過遵循此過程,您可以準(zhǔn)確地將國(guó)家代碼與電話號(hào)碼分開,并可以在JavaScript應(yīng)用程序中進(jìn)一步使用。

此方法用途廣泛,并且可以適應(yīng)各種電話號(hào)碼格式。無論您是處理用戶輸入還是從外部來源處理電話號(hào)碼,此方法都可以確保您可以可靠地提取國(guó)家代碼,這是使用國(guó)際電話號(hào)碼的寶貴一步。

我如何在國(guó)際上格式化我的電話號(hào)碼?

>格式化電話號(hào)碼以確保不同地區(qū)的清晰度和兼容性至關(guān)重要。國(guó)際格式的電話號(hào)碼通常由三個(gè)主要組件組成:國(guó)家代碼,區(qū)域代碼(如果適用)和本地電話號(hào)碼。國(guó)家代碼以加號(hào)()為代表,然后是數(shù)字代碼,例如美國(guó)的1。它是該國(guó)或地區(qū)的普遍認(rèn)可的標(biāo)識(shí)符。
在某些情況下,可能包括區(qū)域代碼,通常與空間或連字符的數(shù)字分開。以下是本地電話號(hào)碼,該號(hào)碼的長(zhǎng)度可能會(huì)有所不同,并且可能包含其他分離器或標(biāo)點(diǎn)符號(hào)。國(guó)家之間的特定格式可能會(huì)有所不同,因此重要的是在可用的情況下遵循當(dāng)?shù)貞T例。通過遵守此結(jié)構(gòu),您可以確保在國(guó)際邊界中易于識(shí)別和可用的電話號(hào)碼。

以上是在JavaScript中使用電話號(hào)碼的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

Java vs. JavaScript:清除混亂 Java vs. JavaScript:清除混亂 Jun 20, 2025 am 12:27 AM

Java和JavaScript是不同的編程語言,各自適用于不同的應(yīng)用場(chǎng)景。Java用于大型企業(yè)和移動(dòng)應(yīng)用開發(fā),而JavaScript主要用于網(wǎng)頁開發(fā)。

JavaScript評(píng)論:簡(jiǎn)短說明 JavaScript評(píng)論:簡(jiǎn)短說明 Jun 19, 2025 am 12:40 AM

JavascriptconcommentsenceenceEncorenceEnterential gransimenting,reading and guidingCodeeXecution.1)單inecommentsareusedforquickexplanations.2)多l(xiāng)inecommentsexplaincomplexlogicorprovideDocumentation.3)

如何在JS中與日期和時(shí)間合作? 如何在JS中與日期和時(shí)間合作? Jul 01, 2025 am 01:27 AM

JavaScript中的日期和時(shí)間處理需注意以下幾點(diǎn):1.創(chuàng)建Date對(duì)象有多種方式,推薦使用ISO格式字符串以保證兼容性;2.獲取和設(shè)置時(shí)間信息可用get和set方法,注意月份從0開始;3.手動(dòng)格式化日期需拼接字符串,也可使用第三方庫;4.處理時(shí)區(qū)問題建議使用支持時(shí)區(qū)的庫,如Luxon。掌握這些要點(diǎn)能有效避免常見錯(cuò)誤。

為什么要將標(biāo)簽放在的底部? 為什么要將標(biāo)簽放在的底部? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScript與Java:開發(fā)人員的全面比較 JavaScript與Java:開發(fā)人員的全面比較 Jun 20, 2025 am 12:21 AM

JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.2)

JavaScript:探索用于高效編碼的數(shù)據(jù)類型 JavaScript:探索用于高效編碼的數(shù)據(jù)類型 Jun 20, 2025 am 12:46 AM

javascripthassevenfundaMentalDatatypes:數(shù)字,弦,布爾值,未定義,null,object和symbol.1)numberSeadUble-eaduble-ecisionFormat,forwidevaluerangesbutbecautious.2)

什么是在DOM中冒泡和捕獲的事件? 什么是在DOM中冒泡和捕獲的事件? Jul 02, 2025 am 01:19 AM

事件捕獲和冒泡是DOM中事件傳播的兩個(gè)階段,捕獲是從頂層向下到目標(biāo)元素,冒泡是從目標(biāo)元素向上傳播到頂層。1.事件捕獲通過addEventListener的useCapture參數(shù)設(shè)為true實(shí)現(xiàn);2.事件冒泡是默認(rèn)行為,useCapture設(shè)為false或省略;3.可使用event.stopPropagation()阻止事件傳播;4.冒泡支持事件委托,提高動(dòng)態(tài)內(nèi)容處理效率;5.捕獲可用于提前攔截事件,如日志記錄或錯(cuò)誤處理。了解這兩個(gè)階段有助于精確控制JavaScript響應(yīng)用戶操作的時(shí)機(jī)和方式。

Java和JavaScript有什么區(qū)別? Java和JavaScript有什么區(qū)別? Jun 17, 2025 am 09:17 AM

Java和JavaScript是不同的編程語言。1.Java是靜態(tài)類型、編譯型語言,適用于企業(yè)應(yīng)用和大型系統(tǒng)。2.JavaScript是動(dòng)態(tài)類型、解釋型語言,主要用于網(wǎng)頁交互和前端開發(fā)。

See all articles