我目前正在将部分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]/);
但它只给了我没有数字的字符。
也许有些人知道解决方案?
答案 0 :(得分:2)
split
接受分隔符,并按分隔符拆分字符串。您正在寻找match
。
在JavaScript语法中,#
应替换为/
。但是你已经结合了PHP和JS语法,无效。
JS
简化它。
要获得匹配,您应该使用
var timevalue = "W5D4H7M34S12";
var aSplitted = timevalue.match(/[a-z]\d+/ig);
document.write(JSON.stringify(aSplitted))
&#13;