我目前正在将一些 PHP 代码重新编码为我的 Node.js 服务器的 JavaScript 代码。
我的 PHP-Reqex 看起来像这样:
$timevalue = "W5D4H7M34S12";
$aSplitted = preg_split('#(?<=\d)(?=[a-z])#i', $timevalue);
$aSplitted 的结果如下所示:
["W5","D4","H7","M34","S12"]
这是我在 javascript 中尝试过的:
var aSplitted = timevalue.split(/(?<=\d)(?=[a-z])#i/g);
或者
var aSplitted = timevalue.split((?<=\d)(?=[a-z])#i);
或者
var aSplitted = timevalue.split('(?<=\d)(?=[a-z])#i');
但这行不通。
我也尝试过这样的事情:
var aSplitted = timevalue.split(/[^A-Za-z]/);
但它只给我字符而没有后面的数字。
也许你们中的一些人知道解决方案?
split
接受分隔符,并按分隔符分割字符串。您正在寻找match
。在 JavaScript 语法中,
#
应替换为 /
。但你把 PHP 和 JS 语法结合起来了,无效。JS 不支持 Lookbehinds
简化一下。
要获取匹配项,您应该使用
var timevalue = "W5D4H7M34S12";
var aSplitted = timevalue.match(/[a-z]\d+/ig);
document.write(JSON.stringify(aSplitted))