📌  相关文章
📜  如何使用 JavaScript 格式化人类可读的电话号码?(1)

📅  最后修改于: 2023-12-03 15:08:20.478000             🧑  作者: Mango

如何使用 JavaScript 格式化人类可读的电话号码?

在开发 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 库。使用任何一种方法,都可以确保通用格式性和干净的代码。