尝试在JavaScript中创建一个过程,以帮助在不同的技术堆栈之间转换自定义日期格式,以便它们以相同的方式解析和显示所有内容。
我无法想出一个好的RegEx转换,
"dddd, dd/MM/yyyy"
至"dddd, DD/MM/yyyy"
还有,
"ddd, dd/MM/yyyy"
至"ddd, DD/MM/yyyy"
我尝试过负面的预测并知道我可以执行类似(?!d{3,4})
的操作来排除dddd和ddd的集合。我知道我也可以d{1,2}
来抓住dd。但当我把它们组合在一起时,/(?!d{3,4})(d{1,2})/g
它也会捕获dddd中的最后两个dd并给我
"ddDD, DD/MM/yyyy"
我搜索了一些示例,并且能够修改一个以获得此RegEx表达式,
/(?=\b|^)(?!d*([d])\1\1\w*)d+(?:\b|$)/g
这就是我所需要的,但我真的不明白它是如何与第一组一起工作的。有没有办法可以根据我的需要简化它,或者有更简单的方法吗?
答案 0 :(得分:1)
/(?=\b|^)(?!d*([d])\1\1\w*)d+(?:\b|$)/g
正则表达式只是将dd
与整个单词匹配。
\b
(后跟单词char)也匹配字符串的开头,因此,使用(?=\b|^)
没有意义,它与^
相同。
负前瞻结束时的\w*
不是必需的,它是多余的,与负前瞻中的任何其他可选子模式一样。
因此,您可以使用/\bdd\b/g
。