我目前正在将一些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))

09-27 16:39