试图用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

那确实满足了我的需要,但是我真的不明白如何与第一批这样的人接洽。有没有一种方法可以根据我的需要对其进行简化,或者有一种更简单的方法可以解决?

最佳答案

/(?=\b|^)(?!d*([d])\1\1\w*)d+(?:\b|$)/g正则表达式与dd整个单词匹配。

\b(后跟单词char)也匹配字符串的开头,因此,使用(?=\b|^)毫无意义,它与^相同。

否定前瞻结尾处的\w*是不必要的,它是多余的,因为否定前瞻内部的任何其他可选子模式。

因此,您可以使用/\bdd\b/g

07-26 08:14