我试图在打字稿中创建一个管道,该管道将拆分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字符串,但这不是必须考虑的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句