JavaScript 如何格式化许可证密钥

JavaScript 如何格式化许可证密钥

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

规则:

  • 输入字符串包含字母、数字和连字符
  • 输入字符串使用N个连字符分隔为N+1个组
  • 输出字符串必须使用连字符每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的后面开始循环。
  • 现在在每次迭代中,使用短线“-”将字符串连接起来。
  • 现在使用 Array.join() 方法将str转换为字符串,并从函数返回该字符串。
<script>
    function format(str, k) {
        str = str
 
            // Remove the white spaces
            .trim() 
 
            // Replace all the special 
            // characters with ""
            .replace(/[^a-zA-Z0-9]/g, "")
 
            // Transform the string into 
            // uppercase characters
            .toUpperCase()
             
            // Convert the string into array
            .split(""); 
 
        // Store the length of the
        // array into len
        let len = str.length; 
 
 
        for (let i = len; i > 0; i = i - k) {
            if (i != len) {
 
                // Concatenate the string with "-"
                str[i - 1] = str[i - 1] + "-";
            }
        }
 
        //  Join the array to make it a string
        return str.join(""); 
    }
 
    console.log(format("dsf354g4dsg1", 4))
    console.log(format(
        "d-sf354g40ds-gsfgf-sfdds65-46", 6))
    console.log(format(
"   d-sf354';.;.';.'...,k/]gcs-hsfgdf-sfs6-46", 5))
</script>

输出:

"DSF3-54G4-DSG1"

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

"DS-F354K-GCSHS-FGDFS-FS646"

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程