PascalCase 문자열을 분할하는 파이프를 typescript로 만들려고했지만 숫자로도 분할하면 좋을 것입니다. 나는 또한 연속 된 대문자로 나누기를 원합니다. 이 파이프는 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 문자열을 분리하지만 고려할 필요는 없습니다.
(?!^)([A-Z]|\d+)
는 첫 번째 공간을 피하고 다듬을 필요가 없습니다.
.replace(/([A-Z]|\d+)/g, " $1").trim();