私はPascalCase文字列を分割するtypescriptでパイプを作ろうとしていましたが、これも数字で分割するのが良いでしょう。また、連続した大文字で分割してほしい。私はこのパイプを使用していますが、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文字列を分割しますが、考慮する必要はありません。
@ibrahimmahrir
—
ctwheels
(?!^)([A-Z]|\d+)
は最初のスペースを避け、トリムする必要はありません。
.replace(/([A-Z]|\d+)/g, " $1").trim();