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

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

在JavaScript中使用電話號碼

Feb 20, 2025 am 10:39 AM

在JavaScript中使用電話號碼

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

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

鑰匙要點

由於其各種格式以及全球編號系統(tǒng)的動態(tài)性質(zhì),電話號碼在編程中很複雜。

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

…應該簡單地構(gòu)建一個簡單的正則表達式來驗證它們。實際上,這是一個:

>

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

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

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

數(shù)字更改

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

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

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

國際撥號代碼

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

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

如您所見,這表明奧地利使用國際撥號代碼43. >

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

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

當然,

有更效率的方法可以做到這一點。

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

>

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

>

>您會在文章附帶的存儲庫中找到這些功能作為模塊以及單元測試。

。 但是,即使是國際撥號代碼,也並不像您想像的那樣簡單。格式可以變化 - 1,43,962 1868都是有效的代碼。不一定是一對一的映射; 44例如,不僅用於英國,還用於馬恩島,根西島和澤西島。
<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ù)撥號的位置更改數(shù)字。從國外,要撥打英國號碼,您需要丟棄帶撥號代碼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>
使事情變得更複雜,有些數(shù)字在從一個國家 /地區(qū)召喚的情況下會有所不同,具體取決於您從哪個國家 /地區(qū)撥打的國家 /地區(qū)。例如,在美國,數(shù)字也必須以美國退出代碼011為前綴,因此上面的示例變?yōu)椋?anc.>>

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

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

有一個明確的,國際公認的電話號碼,是世界上任何地方的電話號碼,名為E.164。格式分解如下:

>

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

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

我們可以使用相同的格式,例如一個基於倫敦的英國號碼:>

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

>當然有一個漁獲。 E.164標準可能非常適合存儲,但對於兩件事來說很可怕。首先,幾乎沒有人會以這種格式輸入或讀取其號碼。其次,就其可讀性而言,它是絕望的。但是,稍後,當我們看一下libphonenumber時,我們會發(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>
>

收集電話號碼

首先,讓我們看一下收集電話號碼的問題。

>
<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”輸入類型。但是,由於格式的變化問題,它實際上並沒有對用戶可以輸入的內(nèi)容施加任何限制,也不會以與電子郵件元素相同的方式執(zhí)行任何驗證。但是,有一些優(yōu)點 - 在移動網(wǎng)站上使用用戶的電話鍵盤通常會顯示,而不是常規(guī)的鍵盤佈局。 >

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

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

<br>
202-456-1111<br>

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

>我們是否應該確定正則表達式足夠 - 請記住,存在問題 - 然後我們可以使用模式屬性添加一些驗證:

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

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

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

更好的方法

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

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

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

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

最後,將其註入如下:
<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)配置選項的完整列表,請諮詢文檔。稍後,我們將查看Utilsscript選項,但首先,我們需要深入研究另一個有用的庫。
<br>
{<br>
"name": {<br>
"common": "Austria",<br>
"official": "Republic of Austria",<br>
// ... //<br>
},<br>
// ... //<br>
"callingCode": ["43"],<br>
// ... //<br>
},<br>
介紹性libphonenumber

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

>

>安裝

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

您也可以通過NPM獲得它。這是項目頁面,然後從命令行安裝:

您也可以使用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>

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

>解析數(shù)字

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

>

首先,導入Phoneutil:

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

我們可以做很多事情。讓我們首先從圖書館導入一些常數(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)在嘗試在沒有國際撥號代碼的情況下解析數(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>

這是因為沒有解釋數(shù)字是為哪個國家,就無法解釋。 parse()方法採用可選的第二個參數(shù),即ISO 3166-1 alpha-2(即兩個字符)國家代碼。

如果您再次嘗試這條線,但是這次將“我們”作為第二個論點,您會發(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>

解釋英國編號:

<br>
+44 20 7925 0918<br>

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

<br>
0044 20 7925 0918<br>

>分解一個數(shù)字後,您可以對其進行驗證 - 正如我們在下一部分中所看到的。

驗證一個數(shù)字

<br>
011 44 20 7925 0918<br>
>驗證遵循類似的模式;同樣,有第二個可選的論點,但是如果沒有暗示該國家 /

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

如果您不提供國家代碼,或者不含義,則會遇到與以前相同的錯誤:

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

但是,請警告

,因為一個無效的數(shù)字可能會引發(fā)例外:

<br>
+442079250918<br>

確定數(shù)字類型

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

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

該函數(shù)將解析的電話號碼作為參數(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ù) - 您會記得我們需要將其作為pnf。

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

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

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

也有許多其他可能性。這是當前的完整列表:
<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反映了這樣一個事實,即我們不一定會以任何確切的方式收集任何信息。因此,總而言之,儘管此功能可以作為快速初始檢查有用,但我們不能依靠它。
  • 是服務中的數(shù)字嗎?
>

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

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

>

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

>

這是一個非常簡單的代碼段,用於使用Twilio通過SMS生成和發(fā)送確認代碼

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

>也有(付費)服務,可以檢查一個數(shù)字是否實時為您服務,例如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>
法律

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

>可用性注意事項

>非常常見的是,以單一形式要求多達三個不同的電話號碼;例如白天,晚上和手機。

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

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

>將jQuery插件與libphoneNumber

組合

>您可能還記得jQuery插件具有一個名為utilsscript的較神秘的選項。

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

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

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

顯示電話號碼

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

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

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

>

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

microdata

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

摘要

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

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

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

>
<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é)合,以獲得更好的用戶體驗,儘管它以性能為代價。

>

>最後,我們研究瞭如何在HTML中標記電話號碼。

>

我將為處理電話號碼提出一些建議:>

    除非您僅在一個國家 /地區(qū)開展業(yè)務,否則請注意國際差異。
  • 使用謹慎的蒙版輸入。
  • >
  • 對基於正則表達的驗證非常小心。
  • >在可能的情況下,使用e.164進行存儲。
  • 使用Google的LibphoneNumber圖書館。
  • 顯示數(shù)字時,將其格式化時,使用TEL:或CALLTO:鏈接類型,並使用Microdata。
  • 關(guān)於JavaScript中的電話號碼的常見問題
  • >如何從JavaScript中的電話號碼中獲取國家代碼?

>

>從JavaScript中的電話號碼中提取國家代碼,您可以利用Google提供的LibphoneNumber庫。該庫是用於解析,格式化和驗證電話號碼的強大工具,使其成為準確提取國家代碼的理想選擇。要開始,您需要使用NPM安裝庫,然後將其導入到JavaScript文件中。導入後,您可以使用Phonenumberutil類有效地使用電話號碼。

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

>

>如何在JavaScript中使用國家代碼的電話號碼驗證?

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

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

>

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

此方法用途廣泛,並且可以適應各種電話號碼格式。無論您是處理用戶輸入還是從外部來源處理電話號碼,此方法都可以確保您可以可靠地提取國家代碼,這是使用國際電話號碼的重要一步。

>

我如何在國際上格式化我的電話號碼?

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

以上是在JavaScript中使用電話號碼的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

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

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

JavaScript評論:簡短說明 JavaScript評論:簡短說明 Jun 19, 2025 am 12:40 AM

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

掌握JavaScript評論:綜合指南 掌握JavaScript評論:綜合指南 Jun 14, 2025 am 12:11 AM

評論arecrucialinjavascriptformaintainingclarityclarityandfosteringCollaboration.1)heelpindebugging,登機,andOnderStandingCodeeVolution.2)使用林格forquickexexplanations andmentmentsmmentsmmentsmments andmmentsfordeffordEffordEffordEffordEffordEffordEffordEffordEddeScriptions.3)bestcractices.3)bestcracticesincracticesinclud

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

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

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)

為什麼要將標籤放在的底部? 為什麼要將標籤放在的底部? Jul 02, 2025 am 01:22 AM

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

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

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

See all articles