मैं टाइपस्क्रिप्ट में एक पाइप बनाने की कोशिश कर रहा था जो पास्कलकेस स्ट्रिंग को विभाजित करेगा, लेकिन यह अच्छा होगा अगर यह अंकों पर भी विभाजित होगा। मैं चाहूंगा कि यह लगातार बड़े अक्षरों में विभाजित हो। मेरे पास यह पाइप है, जो बहुत अच्छा काम करता है, सिवाय इसके कि यह केवल क्रोम में काम करता है और फ़ायरफ़ॉक्स में नहीं, जाहिर है कि केवल क्रोम बैक का समर्थन करता है। बिना लुक बैक के इसे कैसे पूरा किया जा सकता है?
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। ऊपर का यह रेगेक्स भी कैमलकेस स्ट्रिंग को विभाजित करेगा, लेकिन इस पर विचार करना आवश्यक नहीं है।
(?!^)([A-Z]|\d+)पहले स्थान से बचता है और उसे ट्रिम की आवश्यकता नहीं है।
.replace(/([A-Z]|\d+)/g, " $1").trim();