javascript中的正则表达式

Posted 低代码布道师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript中的正则表达式相关的知识,希望对你有一定的参考价值。

我们还是接着上一节的疑问,已经通过百度解决了for…in的疑问,接着就查一下正则表达式,官方的源代码里使用了对象的方式创建正则表达式

function dateFormat(fmt, date) 
    let ret;
    const opt = 
        "Y+": date.getFullYear().toString(),        // 年
        "m+": (date.getMonth() + 1).toString(),     // 月
        "d+": date.getDate().toString(),            // 日
        "H+": date.getHours().toString(),           // 时
        "M+": date.getMinutes().toString(),         // 分
        "S+": date.getSeconds().toString()          // 秒
        // 有其他格式化字符需求可以继续添加,必须转化成字符串
    ;
    for (let k in opt) 
        ret = new RegExp("(" + k + ")").exec(fmt);
        console.log(ret[1])
        console.log(opt[k])
        if (ret) 
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        ;
    ;
    return fmt;

ret = new RegExp("(" + k + “)”).exec(fmt);

这句不是太明白,我们依然通过百度大法来解决

意思就比较明确了,是通过正则表达式来检索字符串,然后将结果存入数组中,第一个位置是全部匹配的字符串,从第二个位置开始是逐个匹配到的结果

那按代码里的意思主要是要将日期格式逐步分解出来,分别是YYYY mm dd HH MM SS ,里边的+号表示要匹配一次或者多次

里边还有个padStart不明白,再查一下

就是前补0的意思,还有一个最后的replace也不明白,继续查找

我以前只是知道replace是查找替换的意思,到时没有注意到还可以使用正则表达式,算是又提升了一点,全看完就明白了,这个函数最终的目的是为了格式化日期字符串的。

以上是关于javascript中的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式:匹配 JavaScript 源代码中的“in”运算符

JavaScript正则表达式入门

JavaScript中 正则表达式的使用 及 常用正则表达式

javascript中的正则表达式

正则表达式检测字符串中的 Javascript

通过 Java 正则表达式提取 semver 版本字符串的片段