gpt4 book ai didi

javascript - 如何拆分包含数字的驼峰式字符串

转载 作者:行者123 更新时间:2023-12-01 23:29:08 25 4
gpt4 key购买 nike

我有像这样的驼峰式字符串:

"numberOf40"
"numberOf40hc"

这样怎么拆分呢?

["number", "Of", "40"]
["number", "Of", "40hc"]

我正在使用 humps对键进行 decamelize,因此我只能将 split 正则表达式作为选项传递。我正在寻找仅使用 split 函数的答案。

我最好的尝试:

const a = "numberOf40hc"

a.split(/(?=[A-Z0-9])/)
// ["number", "Of", "4", "0hc"]

a.split(/(?=[A-Z])|[^0-9](?=[0-9])/)
// ["number", "O", "40hc"]

我也不明白为什么在我上次尝试时省略了 f

最佳答案

你在上次尝试中没有得到 f (?=[A-Z])|[^0-9](?=[0-9]) 作为最后一个模式的这一部分 [^0-9] 匹配除数字以外的单个字符,并将在该字符上拆分。

你也可以匹配而不是拆分

const regex = /[A-Z]?[a-z]+|\d+[a-z]*/g;

[
"numberOf40",
"numberOf40hc"
].forEach(s => console.log(Array.from(s.matchAll(regex), m => m[0])));

仅使用 split,您可以将 lookarounds 与获得更多浏览器支持的 lookbehind 结合使用。

const regex = /(?=[A-Z])|(?<=[a-z])(?=\d)/g;

[
"numberOf40",
"numberOf40hc"
].forEach(s => console.log(s.split(regex)));

关于javascript - 如何拆分包含数字的驼峰式字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66641452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com