📅  最后修改于: 2023-12-03 15:08:20.478000             🧑  作者: Mango
在开发 web 应用程序时,格式化电话号码是一个很常见的任务。这将确保用户输入的号码看起来干净和标准化。在 JavaScript 中,可以使用正则表达式和字符串方法来格式化电话号码。
正则表达式可以匹配电话号码的特定模式,并将其组合为人类可读的格式。下面的正则表达式将匹配所有位于字符串之间的数字,并捕获为三个组:前缀、中间的数字和后缀。
const PATTERN = /^(\d{3})(\d{3})(\d{4})$/;
为了格式化电话号码,可以使用字符串 replace()
方法来将匹配的数字替换为格式化字符串。 下面是一个函数示例,它接收一个数字字符串作为输入,使用上面的正则表达式和 replace()
方法格式化电话号码。
function formatPhoneNumber(phoneNumberString) {
const PATTERN = /^(\d{3})(\d{3})(\d{4})$/;
if (!PATTERN.test(phoneNumberString)) {
return null;
}
return phoneNumberString.replace(PATTERN, "($1) $2-$3");
}
调用函数 formatPhoneNumber("1234567890")
将输出 (123) 456-7890
。
除了手动编写正则表达式外,还可以使用现有的 JavaScript 库,如 Google 的 libphonenumber
。这个开源库提供了各种格式化电话号码的 API 和对国际号码的支持。可以使用以下代码使用该库:
// 导入库
const libphonenumber = require('google-libphonenumber');
// 将电话号码解析为数字
const phoneNumber = libphonenumber.parse('1234567890', 'US');
// 格式化电话号码
const formattedNumber = libphonenumber.format(phoneNumber, libphonenumber.PhoneNumberFormat.NATIONAL);
libphonenumber
提供了多种格式化电话号码的选项。在上面的示例中,libphonenumber.PhoneNumberFormat.NATIONAL
将电话号码格式化为用于美国的国内格式。该库还支持国际电话号码格式和自定义格式。
以上是使用 JavaScript 格式化人类可读的电话号码的两种方法 - 手动编写正则表达式和使用现有的 JavaScript 库。使用任何一种方法,都可以确保通用格式性和干净的代码。