इस:
replace(/([a-zA-Z])([A-Z]+)/g,"$1"+"$2".toLowerCase() )
$ 2 को लोअरकेस में परिवर्तित नहीं करता है (अपरिवर्तित)
परंतु :
replace(/([a-zA-Z])([A-Z]+)/g,"$1"+"heLLo".toLowerCase() )
हर ऊपरी मामले को "हैलो" द्वारा प्रतिस्थापित किया जाता है (जैसा कि अपेक्षित)
क्यूं कर?
धन्यवाद।
उत्तर:
जवाब के लिए 2 № 1इसलिये toLowerCase
इसे मुख्य समारोह में आने से पहले निष्पादित किया जाता है replace
। यह वही है जो आप कर रहे हैं:
replace(/([a-zA-Z])([A-Z]+)/g,"$1hello")
आप जो भी चाहते हैं वह कर सकते हैं:
var replaceLogic = function(fullMatch, firstGroup, secondGroup){
return firstGroup.toLowerCase() + secondGroup;
};
string.replace(/([a-zA-Z])([A-Z]+)/g, replaceLogic);