0

我得到以下字符串:

"14-10-2013 03:04"

我想要一个函数,用现在的“14”替换“10”所在的部分。我该怎么做?我知道有类似分裂的东西,但我对它不太有经验。

至今:

var string = '14-10-2013 03:04';
var firstPart = string.split("-", 1);
alert(firstPart);

但我不知道如何在变量中获取第二部分('10')。

4

1 回答 1

2

对于特定的字符串格式(转换"xx-yy-...""yy-xx-..."),一个简单的替换就可以了:

"14-10-2013 03:04".replace(/(\d\d)-(\d\d)/,"$2-$1")

解释:

正则表达式/(\d\d)-(\d\d)/匹配两个数字,后跟一个破折号,再跟两个数字。括号表示可以在第二个参数中引用的捕获组。在这种情况下,对于字符串“14-10-2013 03:04”,子字符串“14-10”匹配正则表达式,捕获的两个文本是“14”和“10”。

在第二个参数中,使用$1, $2, ... 指定应在何处插入捕获的文本。在这种情况下,"$2-$1"将写入第二个捕获的文本 (14),然后是破折号,然后是第一个捕获的文本 (10)。

有关详细信息,请参阅有关 String.prototype.replace 的 MDN 文档

于 2013-10-14T07:27:47.770 回答