如何使用JavaScript以国际方式写入手机号码
当您的网站上有来自世界各地的访问者时,按照国际标准显示诸如手机号码之类的内容是一个好主意。这样他们可以很容易地理解。
我们可以使用国际公共电信编号格式来表示手机号码的国际方式。它也可以用“E-164”格式表示。
我们提供了以下语法以按国际方式编写手机号码。
[+] [country code] [local phone number]
用户可以看到国际电话号码以“+”开头,并在国家代码后跟本地电话号码。
在这里,我们将使用正则表达式和match()方法来使用JavaScript以国际方式转换手机号码。
语法
用户可以按照以下语法将手机号码转换为国际标准格式。
let reg = /^(\d{3})(\d{3})(\d{4})$/;
let array = number.match(reg);
在上面的语法中,我们编写了一个正则表达式来匹配电话号码。
match方法返回一个包含所有匹配项的数组。对于一个有效的匹配,它返回四个元素。第一个元素是完整的三位数电话号码,第二个元素是电话号码的前三位数字,第三个元素是电话号码的中间三位数字,第四个元素是有效电话号码的最后四位数字。
正则表达式解析
^
- 它是正则表达式的开始。-
(\d{3})
- 它代表开头的三位数字。 -
(\d{3})
- 它代表中间的三位数字。 -
(\d{4}$)
- 它代表结尾的四位数字。
示例
在下面的示例中,我们添加了一个类型为number的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>
用户学会按照国际标准排列手机电话号码。我们使用正则表达式来验证手机号码的有效性。如果手机号码有效,我们会显示它的国际格式,并附带所选国家代码。