我目前正在将一些PHP代码重新编码为node.js服务器的javascript代码。
我的PHP Requex看起来像这样:
$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))