如何使用 JavaScript 以国际格式编写手机号码?


当您的网站有来自全球各地的访问者时,最好按照国际标准显示诸如手机号码之类的信息。这样他们就能轻松理解。

我们可以使用国际公共电信编号格式以国际方式表示手机号码。它也称为“E-164”格式。

我们提供了以下语法,供您遵循以国际方式编写手机号码。

[+] [country code] [local phone number] 

用户可以看到,国际电话号码开头是“+”,然后是“国家代码”,之后是本地电话号码。

在这里,我们将使用正则表达式和 match() 方法,使用 JavaScript 将手机号码转换为国际格式。

语法

用户可以按照以下语法将手机号码转换为国际标准格式。

let reg = /^(\d{3})(\d{3})(\d{4})$/;
let array = number.match(reg);

在上述语法中,我们编写了正则表达式以匹配电话号码。

match 方法返回所有匹配项的数组。对于有效匹配,它返回四个元素。第一个元素是整个 3 位电话号码,第二个元素是电话号码的前三位数字,第三个元素是电话号码的中间三位数字,第四个元素是有效电话号码的后四位数字。

正则表达式解释

  • ^ − 表示正则表达式的开头。

  • (\d{3}) − 表示开头的三位数字。

  • (\d{3}) − 表示中间的三位数字。

  • (\d{4}$) − 表示结尾的四位数字。

示例

在下面的示例中,我们添加了数字类型的 HTML 输入。用户可以输入一个有效的 10 位手机号码。当用户点击提交按钮时,它会执行 writeInternationalNumber() 函数。我们在函数中使用了上述正则表达式来匹配输入值并在数组格式中获取匹配值。

之后,我们将数组值连接到一个字符串中,以根据国际标准编写手机号码。

<html>
<body>
   <h3>Using the <i> Regular expression </i> to write a cell phone number in an international way in JavaScript </h3>
   <p>Enter phone number:</p>
   <input type = "number" id = "cell">
   <div id = "content"></div>
   <button id = "btn" onclick = "writeInternationalNumber()"> Submit</button>
   <script>
      let content = document.getElementById('content');
      
      // function to write a cell phone number in the international format
      function writeInternationalNumber() {
         let cell = document.getElementById('cell');
         let number = cell.value;
         let reg = /^(\d{3})(\d{3})(\d{4})$/;
         let array = number.match(reg);
         if(array == null) {
            content.innerHTML = "Please enter a valid phone number";
            return;
         }
         let internationalNumber = '+91' + ' (' + array[1] + ') ' + array[2] + '-' + array[3];
         content.innerHTML = "The converted phone number is " + internationalNumber;
      }
   </script>
</body>
</html>

示例

在下面的示例中,我们创建了国家代码的下拉列表及其值。用户可以选择任何国家并在输入框中输入 10 位电话号码。当用户按下按钮时,它会执行 cellNumberWithCountryCode() 函数,该函数获取所选国家代码和电话号码的值。之后,我们创建了一个类似于上面示例的字符串,以国际方式编写输入的手机号码。

<html>
<body>
   <h3>Using the <i> Regular expression </i> to write a cell phone number in an international way in JavaScript </h3>
   <select name = "country_code" id = "codes">
      <option value = "+91" selected> India (+91) </option>
      <option value = "+355"> Albania (+355) </option> 
      <option value = "+1"> USA (+1) </option>
      <option value = "+43"> Austria (+43) </option>
      <option value = "+86"> China (+86) </option>
      <option value = "+81"> Japan (+81) </option>
      <option value = "+31"> Netherlands (+31) </option>
      <option value = "+263"> Zimbabwe (+263) </option>
   </select>
   <input type = "number" id = "cell"> <br>
   <div id = "content"> </div> <br>
   <button id = "btn" onclick = "cellNumberWithCountryCode()"> Submit</button>
   <script>
      let content = document.getElementById('content');
      
      // function to write a cell phone number in the international format
      function cellNumberWithCountryCode() {
         let cell = document.getElementById('cell');
         let number = cell.value;
         let reg = /^(\d{3})(\d{3})(\d{4})$/;
         
         // get the country code from the dropdown
         let country_code = document.getElementById('codes').value;
         let array = number.match(reg);
         if (array == null) {
            content.innerHTML = "Please enter a valid phone number";
            return;
         }
         let internationalNumber = country_code + ' (' + array[1] + ') ' + array[2] + '-' + array[3];
         content.innerHTML = "The converted phone number is " + internationalNumber; 
      }
   </script>
</body>
</html>

用户学习了如何根据国际标准排列手机号码。我们使用了正则表达式来验证手机号码。如果电话号码有效,我们将在选择国家代码的情况下以国际格式显示它。

更新于: 2023年2月28日

544 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告