当前位置:  开发笔记 > 编程语言 > 正文

在大写字母或数字上分割字符串

如何解决《在大写字母或数字上分割字符串》经验,为你挑选了1个好方法。

我试图在打字稿中创建一个管道,该管道将拆分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。上面的此正则表达式也会拆分camelCase字符串,但这不是必须考虑的。



1> bobble bubbl..:

如何匹配由更基本的模式是这样,并加入与空间。

let str = `ANet15Amount`;

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

console.log(camel);
推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有