gpt4 book ai didi

javascript - 按大写字母或数字拆分字符串

转载 作者:行者123 更新时间:2023-12-03 06:44:00 26 4
gpt4 key购买 nike

我试图在 typescript 中制作一个管道来分割 PascalCase 字符串,但如果这也能分割数字,那就太好了。我还希望它能分割成连续的大写字母。我有这个管道,效果很好,但它只能在 Chrome 中运行,而不能在 Firefox 中运行,显然只有 Chrome 支持回溯。如何在不回头的情况下实现这一目标?

transform(value: string): string {
let extracted = '';
if (!value) {
return extracted;
}

const regExSplit = value
.split(new RegExp('(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|(?<=[0-9])(?=[A-Z][a-z])|(?<=[a-zA-Z])(?=[0-9])'));
for (let i = 0; i < regExSplit.length; i++) {
if (i !== regExSplit.length - 1) {
extracted += `${regExSplit[i]} `;
} else {
extracted += regExSplit[i];
}
}

return extracted;
}

例如,字符串 ANet15Amount 应转换为 A Net 15 Amount。上面的正则表达式也会分割驼峰式字符串,但这没有必要考虑。

最佳答案

怎么样matching通过更基本的模式 like thisjoining有空间。

let str = `ANet15Amount`;

let camel = str.match(/[A-Z]+(?![a-z])|[A-Z]?[a-z]+|\d+/g).join(' ');

console.log(camel);

首先我想到了简单的 [A-Z][a-z]*|\d+ 但这会将例如 ABCDefg123 分解为 A B C Defg 123 ,与当前函数的工作方式会有所不同,它会转换为 ABC Defg 123

还是有一点区别的。您将 A1B2 转换为 A 1B 2,将这个转换为 A 1 B 2,我认为这个会更准确,不是吗? .

关于javascript - 按大写字母或数字拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58861457/

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