javascript 在非字母数字上分割并在开始处保留分隔符

2023-12-26

我目前正在将一些 PHP 代码重新编码为我的 Node.js 服务器的 JavaScript 代码。

我的 PHP-Regex 看起来像这样:

$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);

Or

var aSplitted = timevalue.split((?<=\d)(?=[a-z])#i);

Or

var aSplitted = timevalue.split('(?<=\d)(?=[a-z])#i');

但它不会起作用。

我也尝试过这样的事情:

var aSplitted = timevalue.split(/[^A-Za-z]/);

但它只给了我后面没有数字的字符。

也许你们中的一些人知道解决方案?


  1. split接受分隔符,并按分隔符分割字符串。您正在寻找match.

  2. 在 JavaScript 语法中,#应替换为/。但是你结合了 PHP 和 JS 语法,无效。

  3. JS 不支持 Lookbehinds

  4. 只是简单化一下。

要获得匹配项,您应该使用

var timevalue = "W5D4H7M34S12";
var aSplitted = timevalue.match(/[a-z]\d+/ig);

document.write(JSON.stringify(aSplitted))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javascript 在非字母数字上分割并在开始处保留分隔符 的相关文章