gpt4 book ai didi

javascript - 操作 .replace() 匹配

转载 作者:行者123 更新时间:2023-11-28 15:42:50 25 4
gpt4 key购买 nike

我有一个像这样的文本字符串:

1398097442.61 INFO Some Name: Some Thing ...9381

我想将开头的数字转换为人类可读的日期时间。

我正在做的是这样的:

input.replace(/^(\d+\.?\d*)/g, new Date(parseFloat("$1") * 1000).toGMTString());

这行不通。如果我只是重新打印匹配“$1”,那就没问题了。我怎样才能操纵比赛?

最佳答案

只需确保传递一个要替换的函数(毕竟,这不是 Scala):-)

input.replace(/^(\d+\.?\d*)/g, function(match, timestamp) {
return new Date(parseFloat(timestamp) * 1000).toGMTString();
});

您的做法根据对字符串“$1”调用parseFloat的结果创建了一个日期,然后获取结果(NaN) 并将其传递给 Date 构造函数并得到一个 GMT 字符串 - 然后将其用作正则表达式的替换字符串。

想要要做的是推迟执行new Date代码,直到找到匹配项。自 String.prototype.replace可以将函数作为第二个参数,我们只需将 new Date 行为包装在函数中,一切都会正常工作。

关于javascript - 操作 .replace() 匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23279420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com