📜  如何使用 JavaScript 格式化许可证密钥?

📅  最后修改于: 2022-05-13 01:56:25.302000             🧑  作者: Mango

如何使用 JavaScript 格式化许可证密钥?

给定一个字符串,任务是将字符串格式化为许可证密钥。

规则:

  • 输入字符串包含字母数字字符和破折号
  • 输入字符串由 N+1 组使用 N 个破折号分隔。
  • 输出字符串必须使用破折号按 K 个字符分组。
  • 第一组可以少于 K 个字符,但不能为零。
  • 输出字符串不能包含任何小写字符。

您已经给出了输入字符串str和数字K

例子:

Input:  str = "dsf354g4dsg1"
          k = 4
Output: "DSF3-54G4-DSG1"

Input:  str = "d-sf354g4ds-g1dsfgdf-sfd5ds65-46"
          k = 6
Output:  "D-SF354G-40DSGS-FGFSFD-DS6546"

Input:  str = "   d-sf354';.;.';.'...,k/]gcs-hsfgdf-sfs6-46"
Output:   k = 5

Output: "DS-F354K-GCSHS-FGDFS-FS646"

为了解决这个问题,我们使用以下步骤:

  • 创建一个接受两个参数strk的函数。
  • 使用String.trim()方法删除前导和结束空格。
  • 使用String.replace()方法和使用正则表达式/[^a-zA-Z0-9]/g搜索替换所有特殊字符。
  • 使用String.toUpperCase()将字符串字符转换为大写 方法。
  • 使用String.split()将字符串转换为数组 方法。现在你有 str 是一个数组,其中所有元素都是大写字符和数字(以字符串形式)。
  • 使用 for 循环并以 str 的长度初始化循环并运行它直到i大于 0 并且每次迭代后i的值减少k。基本上,我们想要一个从 str 的背面运行的循环。
  • 现在在每次迭代时用破折号“-”连接字符串
  • 现在在 str 上使用Array.join() 方法将 str 转换为 String 并从函数返回字符串。
Javascript


输出:

"DSF3-54G4-DSG1"

"D-SF354G-40DSGS-FGFSFD-DS6546"

"DS-F354K-GCSHS-FGDFS-FS646"