如何在JavaScript的replace方法中用正则表达式移除点号和冒号
解决JavaScript移除时间字符串中冒号和点号的问题
要同时移除冒号和点号,你需要调整正则表达式,直接匹配这两种字符并全局替换为空。
正确代码示例
console.log(new Date().toISOString().split('T')[1].replace(/[:.]/g, ''))
运行后会输出类似051034654Z的结果,完全移除了所有冒号和点号。
为什么之前的写法无效?
- 你最初的
/:./g是匹配冒号+任意单个字符,所以会把:和后面的数字一起删掉,但点号本身不在匹配规则里,自然留了下来。 - 尝试的
/:\b./g、/(:)(.)/g都是围绕冒号加后续字符做匹配,根本没涉及点号;/:&./g里的&是多余的字面量,原字符串里没有这个字符,完全不生效。
其他等效写法
如果觉得字符类不够直观,也可以分两次替换:
const timePart = new Date().toISOString().split('T')[1]; console.log(timePart.replace(/:/g, '').replace(/\./g, ''));
效果和单次正则替换完全一致。
内容的提问来源于stack exchange,提问作者jospert
相关产品推荐
相关产品推荐

