/ / क्यों LowerCase () regexp के साथ काम नहीं करता है? - जावास्क्रिप्ट, regex, प्रतिस्थापित, लोअरकेस

क्यों LowerCase () regexp के साथ काम नहीं करता है? - जावास्क्रिप्ट, regex, प्रतिस्थापित, लोअरकेस

इस:

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);