स्ट्रिंग में शब्दों को कैपिटलाइज़ करें


183

किसी स्ट्रिंग में शब्दों को कैपिटलाइज़ करने के लिए सबसे अच्छा तरीका क्या है?


66
यदि यह प्रदर्शन के लिए है, तो CSS का उपयोग करें। text-transform:capitalize;
kennytm

3
इसका उपयोग DOM तत्वों के लिए "शीर्षक" विशेषता सेट करने के लिए किया जाना है। कोई सीएसएस :)
विस्कॉन्सिन

1
इसके अलावा, मैंने यह सवाल पूछा है, हालांकि मुझे इसका हल पता है, क्योंकि मैंने इस वेबसाइट में इसकी तलाश की और एक अच्छा समाधान नहीं खोज पाया, इसलिए इसे प्रलेखन के लिए जोड़ा।
vsync

1
@KennyTM: टेक्स्ट-ट्रांसफॉर्म वास्तव में फॉर्म के फीइड्स वैल्यू को कैपिटलाइज़ नहीं करेगा, सभी मानों को कैपिटल में प्रस्तुत किया जाएगा, लेकिन सर्वर में भेजे जाते हैं।
मार्को डेमायो

8
@ मार्को: हाँ, इसीलिए मैंने कहा "अगर यह प्रदर्शन के लिए है"।
20

जवाबों:


287
/**
 * Capitalizes first letters of words in string.
 * @param {string} str String to be modified
 * @param {boolean=false} lower Whether all other letters should be lowercased
 * @return {string}
 * @usage
 *   capitalize('fix this string');     // -> 'Fix This String'
 *   capitalize('javaSCrIPT');          // -> 'JavaSCrIPT'
 *   capitalize('javaSCrIPT', true);    // -> 'Javascript'
 */
const capitalize = (str, lower = false) =>
  (lower ? str.toLowerCase() : str).replace(/(?:^|\s|["'([{])+\S/g, match => match.toUpperCase());
;

  • मार्को डेमायो के समाधान को ठीक करता है, जहां पहले वाले स्थान के साथ पहला अक्षर पूंजीकृत नहीं है।
capitalize(' javascript'); // -> ' Javascript'
  • राष्ट्रीय प्रतीकों और उच्चारण पत्रों को संभाल सकता है।
capitalize('бабушка курит трубку');  // -> 'Бабушка Курит Трубку'
capitalize('località àtilacol')      // -> 'Località Àtilacol'
  • उद्धरण और ब्रेसिज़ संभाल सकते हैं।
capitalize(`"quotes" 'and' (braces) {braces} [braces]`);  // -> "Quotes" 'And' (Braces) {Braces} [Braces]

4
regexp "गैर-व्हाट्सएप कैरेक्टर (\ S) को स्ट्रिंग की शुरुआत (^) या किसी
व्हाट्सएप

3
ऊपरी मामले के तारों को संभालने के लिए थोड़ी वृद्धि :) ** String.prototype.capitalize = function () {इस .toLowerCase को वापस करें ()। (/ ?: ^ | \ _) \ / s / g, function (a) को बदलें। {वापसी a.toUpperCase ();}); }; **
सूर्यापवन

1
कृपया मौजूदा वस्तुओं के प्रोटोटाइप में बदलाव न करें।
असकर

1
@ Dr.X, ऐड-ऑन देखें 'CHECK THIS OUT'.capitalize(true) -> "Check This Out",। मन trueपैरामीटर।
दोपहर

1
@ SeaWarrior404, आप सही हैं, es6 सिंटैक्स के साथ मेरे जवाब को अपडेट किया, jsdoc और कुछ विराम चिह्नों को जोड़ा
विस्थापित

216

एक स्ट्रिंग के भीतर शब्दों को कैपिटलाइज़ करने के लिए सबसे छोटा कार्यान्वयन ES6 के एरो फ़ंक्शन का उपयोग करते हुए निम्नलिखित है:

'your string'.replace(/\b\w/g, l => l.toUpperCase())
// => 'Your String'

ES5 संगत कार्यान्वयन:

'your string'.replace(/\b\w/g, function(l){ return l.toUpperCase() })
// => 'Your String'

रेगेक्स मूल रूप से दिए गए स्ट्रिंग के भीतर प्रत्येक शब्द के पहले अक्षर से मेल खाता है और केवल उस अक्षर को अपरकेस में बदल देता है:

  • \ b एक शब्द सीमा (शब्द की शुरुआत या अंत) से मेल खाता है;
  • \ w निम्न मेटा-चरित्र [a-zA-Z0-9] से मेल खाता है।

गैर- ASCII वर्णों के बजाय इस समाधान को देखें

'ÿöur striñg'.replace(/(^|\s)\S/g, l => l.toUpperCase())

यह रेगेक्स पहले अक्षर और प्रत्येक गैर-व्हाट्सएप पत्र से मेल खाता है जो दिए गए स्ट्रिंग के भीतर व्हाट्सएप से पहले है और केवल उस पत्र को अपरकेस में बदल देता है:

  • \ रों मैचों में एक खाली स्थान के चरित्र
  • \ S एक गैर-व्हाट्सएप चरित्र से मेल खाता है
  • (x | y) निर्दिष्ट विकल्पों में से किसी से मेल खाता है

एक गैर-कैप्चरिंग समूह का उपयोग यहां किया जा सकता था, /(?:^|\s)\S/gहालांकि gहमारे रेगेक्स के भीतर ध्वज वैसे भी डिजाइन द्वारा उप-समूहों पर कब्जा नहीं करेगा।

चीयर्स!


1
क्या आप इस जवाब में बता सकते हैं कि रेगेक्स कैसे काम करता है? (प्रत्येक टुकड़े का अर्थ)
vsync

2
अगर यह स्पष्टीकरण इसके अंदर होगा और एक टिप्पणी के रूप में याद नहीं किया जा सकता है तो मैं इसे उत्तर के रूप में चुनूंगा।
vsync

2
यह नॉर्डिक वर्ण ä, ö, और å के लिए काम नहीं करता है। उदाहरण के लिए päijät-hämeहो जाता हैPäIjäT-HäMe
मार्कस Meskanen

1
यह समाधान अंतर्राष्ट्रीय सामग्री के लिए एक अच्छा नहीं है जिसमें डियाक्रिटिक / गैर-लैटिन वर्ण हैं। EisbäRenएक परिणाम है, उदाहरण के लिए।
डैनियल बी।

3
@MarkusMeskanen से उदाहरण को बदलना चाहिए Päijät-Häme, लेकिन कम से कम क्रोम व्हाट्सएप में डैश (-) शामिल नहीं है, इसलिए नाम का दूसरा भाग पूंजीकृत नहीं है। के रूप में तय किया जा सकता है /(^|\s|-)\S/g
मिरिन

34
function capitalize(s){
    return s.toLowerCase().replace( /\b./g, function(a){ return a.toUpperCase(); } );
};

capitalize('this IS THE wOrst string eVeR');

आउटपुट: "यह सबसे खराब स्ट्रिंग एवर है"

अपडेट करें:

ऐसा प्रतीत होता है कि यह समाधान मेरी मदद करता है: https://stackoverflow.com/a/7592235/104380


यह देखें कि ऐसा लगता है कि आपका कार्य गलत तरीके से अक्षरों को भी कैपिटलाइज़ करता है, मेरा उत्तर देखें: stackoverflow.com/questions/2332811/capitalize-words-in-string/… मैंने भी इसका विरोध किया।
मार्को डेमायो

9
मुझे प्रोटोटाइप पसंद नहीं है, इसमें टकराव पैदा करने की क्षमता है, कोई और है जो प्रोटोटाइप स्ट्रिंग के समान नाम का उपयोग कर रहा है।
विस्कॉन्सिन

15

Vsync द्वारा प्रदान की जवाब काम करता है जब तक आप पत्र उच्चारण नहीं है के रूप में इनपुट स्ट्रिंग में।

मुझे इसका कारण नहीं पता है, लेकिन जाहिर तौर पर \bरीजेक्सप मैचों में भी अक्षरों का उच्चारण होता है (आईई 8 और क्रोम पर परीक्षण किया गया है), इसलिए एक स्ट्रिंग "località"को गलत तरीके से कैपिटल में बदला जाएगा"LocalitÀ" ( àअक्षर कैपिटलाइज्ड हो जाता है क्योंकि रीजेक्सपी को लगता है कि यह एक शब्द सीमा है)

एक अधिक सामान्य फ़ंक्शन जो उच्चारण अक्षरों के साथ भी काम करता है, वह यह है:

String.prototype.toCapitalize = function()
{ 
   return this.toLowerCase().replace(/^.|\s\S/g, function(a) { return a.toUpperCase(); });
}

आप इसे इस तरह से उपयोग कर सकते हैं:

alert( "hello località".toCapitalize() );

1
" javascript".toCapitalize() -> " javascript"
विच्छेदित

2
TO ITOM MAY CONCERN: डिस्चार्ज किया गया उत्तर stackoverflow.com/questions/2332811/capitalize-words-in-string/… अब यहाँ सबसे अच्छा उत्तर है।
मार्को डेमायो

4

चूँकि सभी ने आपके द्वारा पूछे गए जावास्क्रिप्ट उत्तर को दिया है, इसलिए मैं इसमें फेंक दूंगा कि CSS संपत्ति text-transform: capitalizeठीक यही करेगी।

मुझे लगता है कि यह वह नहीं हो सकता है जो आप पूछ रहे हैं - आपने हमें कोई संदर्भ नहीं दिया है जिसमें आप इसे चला रहे हैं - लेकिन अगर यह सिर्फ प्रस्तुति के लिए है, तो मैं निश्चित रूप से सीएसएस विकल्प के साथ जाऊंगा।


केनीटीएम ने आपको इसमें हराया। प्रश्न अनुभाग पर उसकी टिप्पणी की जाँच करें। :-)
बुहाके सिंडी

हां, मुझे यह सीएसएस विशेषता पता है, लेकिन मुझे डोम तत्वों के शीर्षक विशेषता के लिए इसकी आवश्यकता है, और इसमें कोई सीएसएस नहीं है जो कभी ऐसा हो, जैसा कि आप जानते हैं।
vsync

4

जॉन रेसिग (jQuery की प्रसिद्धि) ने एक पर्ल लिपि को चित्रित किया, जिसे जॉन ग्रुबर ने जावास्क्रिप्ट में लिखा था। यह स्क्रिप्ट अधिक बुद्धिमान तरीके से कैपिटल करता है, उदाहरण के लिए 'और' और 'जैसे छोटे शब्दों को कैपिटलाइज़ नहीं करता है।

आप इसे यहां पा सकते हैं: जावास्क्रिप्ट में शीर्षक कैपिटलाइज़ेशन


4

जावास्क्रिप्ट और HTML का उपयोग करना

String.prototype.capitalize = function() {
  return this.replace(/(^|\s)([a-z])/g, function(m, p1, p2) {
    return p1 + p2.toUpperCase();
  });
};
<form name="form1" method="post">
  <input name="instring" type="text" value="this is the text string" size="30">
  <input type="button" name="Capitalize" value="Capitalize >>" onclick="form1.outstring.value=form1.instring.value.capitalize();">
  <input name="outstring" type="text" value="" size="30">
</form>

मूल रूप से, आप कर सकते हैं string.capitalize()और यह प्रत्येक शब्द के प्रत्येक 1 अक्षर को बड़ा कर देगा।

स्रोत: http://www.mediacollege.com/internet/javascript/text/case-capitalize.html


1
मैं इस तरह से प्रोटोटाइप बनाने का प्रशंसक नहीं हूं, क्योंकि मेरी स्क्रिप्ट्स कभी-कभी अन्य वेबसाइटों में 3rd पार्टी एम्बेड होती हैं, और जो "स्ट्रिंग" जैसी वैश्विक वस्तु के साथ खिलवाड़ का कारण बन सकती हैं ... इसलिए मैं इसके बजाय "fucntion" करना पसंद करता हूं।
विंसिपटन

1
यह प्रोटोटाइप की सुंदरता है (आप जिस प्रोटोटाइप को डाउनलोड नहीं करते हैं)। यह जावास्क्रिप्ट में मानक है और सभी ब्राउज़रों में काम करता है।
बुहाके सिंडी

मुझे संदेह है कि यह समस्या पैदा कर सकता है अगर कोई और पहले से ही अपने स्वयं के String.prototyp.capitalize को प्रोटोटाइप करता है, और मैं गलती से इसे ओवरराइड करूंगा।
vsync

1
@vsync, आप हमेशा ऐसा करके देख सकते हैं। if (object.capitalize) {...} else {String.prototype.capitalize = function()....}जहाँ वस्तु प्रकार की है String। तो, यह वास्तव में काफी सरल है।
बुहके सिंडी

4

इवो ​​का जवाब अच्छा है, लेकिन मैं मैच नहीं करना पसंद करता हूं \wक्योंकि 0-9 और एज़ को कैपिटलाइज़ करने की कोई ज़रूरत नहीं है। हम उन पर ध्यान नहीं दे सकते हैं और केवल az पर मैच कर सकते हैं।

'your string'.replace(/\b[a-z]/g, match => match.toUpperCase())
// => 'Your String'

यह वही आउटपुट है, लेकिन मुझे लगता है कि सेल्फ-डॉक्यूमेंटिंग कोड के मामले में यह स्पष्ट है।


यह गैर अंग्रेजी अक्षर के लिए असफल होगा "Är Toaletten":। आपका उत्तर, बहुत अच्छा उत्तर दिए जाने के वर्षों के बाद, चर्चा में योगदान नहीं करता है ..
vsync

@vsync जो बहुत कठोर लगता है। यह स्वीकृत उत्तर का अनुकूलन है। /\b\w/gगैर-अंग्रेजी अक्षरों के लिए भी विफल रहता है। हर कोई यूनिकोड वर्णों के साथ व्यवहार नहीं करता है, और यह उन लोगों की मदद करेगा जो नहीं चाहते हैं।
बिग मनी

1
ठीक है .. मुझे नहीं लगता कि आपको केवल शीर्ष उत्तर के बजाय इसका उपयोग करना चाहिए क्योंकि आपको अंग्रेजी के अलावा किसी अन्य भाषा की आवश्यकता नहीं है। यह एक अच्छा-पर्याप्त औचित्य नहीं है क्योंकि सभी ASCII पात्रों के लिए ऐसा करने के लिए कोई जुर्माना नहीं है जैसा कि शीर्ष प्रश्न में कहा गया है
vsync

3

यदि आप अपने जावास्क्रिप्ट एप्लिकेशन में लॉश का उपयोग कर रहे हैं , तो आप _.capitalize का उपयोग कर सकते हैं :

console.log( _.capitalize('ÿöur striñg') );
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>


3

यह करने का एक संक्षिप्त ES6 तरीका कुछ इस तरह लग सकता है।

const capitalizeFirstLetter = s => s.charAt(0).toUpperCase() + s.slice(1)

यह केवल पहले अक्षर को ऊपर ले जाता है और वाक्य के बाकी हिस्सों को प्रभावित नहीं करता है।


2

मेरा समाधान:

String.prototype.toCapital = function () {
    return this.toLowerCase().split(' ').map(function (i) {
        if (i.length > 2) {
            return i.charAt(0).toUpperCase() + i.substr(1);
        }

        return i;
    }).join(' ');
};

उदाहरण:

'álL riGht'.toCapital();
// Returns 'Áll Right'

कई तरीकों की कोशिश करें और आपका समाधान सबसे कुशल है और नाम के उच्चारण का सम्मान करता है jsbench.me/urjeu9wvql
nasatome

यह काम नहीं करता है: 'a áAA. bb . bbb .cc .d'.toCapital();=>a Áaa. bb . Bbb .cc .d
vsync

मैंने इसे 2 अक्षरों से कम के शब्दों पर विचार नहीं करने के लिए बनाया, जैसे "का", "जैसा"।
एरिक तात्सुई

1

यह सबसे बुनियादी उपयोग के मामलों को कवर करना चाहिए।

const capitalize = (str) => {
    if (typeof str !== 'string') {
      throw Error('Feed me string')
    } else if (!str) {
      return ''
    } else {
      return str
        .split(' ')
        .map(s => {
            if (s.length == 1 ) {
                return s.toUpperCase()
            } else {
                const firstLetter = s.split('')[0].toUpperCase()
                const restOfStr = s.substr(1, s.length).toLowerCase()
                return firstLetter + restOfStr
            }     
        })
        .join(' ')
    }
}


capitalize('THIS IS A BOOK') // => This Is A Book
capitalize('this is a book') // => This Is A Book
capitalize('a 2nd 5 hour boOk thIs weEk') // => A 2nd 5 Hour Book This Week

संपादित करें: मानचित्रण की बेहतर पठनीयता।


क्या आप यह समझा सकते हैं कि आपको क्यों लगता है कि आपका उत्तर कई सालों पहले दूसरों की तुलना में बेहतर है?
विस्कॉन्सिन

क्या आप बता सकते हैं कि आपने यह क्यों सोचा कि मेरा मतलब था कि मेरा उत्तर दूसरों की तुलना में सबसे अच्छा / या बेहतर है? मैंने यह उल्लेख नहीं किया है, यह सिर्फ अलग है। इसके अलावा, मैंने आपको अन्य पदों पर इस टिप्पणी को छोड़ने के लिए नहीं देखा, इसलिए मुझे वास्तव में यह नहीं मिला। लेकिन शुरुआत के लिए: यह आधुनिक जेएस सुविधाओं (विनाशकारी, वसा तीर, अंतर्निहित वापसी) का उपयोग करता है, यह रेक्स का उपयोग नहीं करता है और यह समस्या का अधिक कार्यात्मक दृष्टिकोण है। इसके अलावा इसमें बहुत बुनियादी त्रुटि है और यदि आप इसे (मेरे लिए महत्वपूर्ण था) पास करते हैं तो खाली स्ट्रिंग लौटाते हैं।
बूँदें

यह अलग होना ठीक है, लेकिन यह अन्य उत्तरों के बराबर बेहतर या बराबर होना चाहिए , और यह प्रतीत होता है ... अपठनीय और निश्चित रूप से कोई भी उत्पादन कोड में नहीं डाल सकता है क्योंकि कोई भी इसे समझने में सक्षम नहीं होगा
vsync

आह, ठीक है, तो यहां 50% समाधान जो आपको वास्तव में उत्पादन में डालेंगे? या शायद regex अभिव्यक्ति व्यक्त? उन लोगों के साथ तर्क करना बहुत आसान है, है ना? इमो बिल्कुल नहीं! यह भी कहना कि किसी को भी समझ में नहीं आएगा यह काफी व्यक्तिपरक कथन है। इसके अलावा इस बात के लिए आप ने कहा कि (और अधिक सुविधाओं, लेकिन यह मामला यहाँ नहीं है) कोड के टुकड़े टुकड़े टुकड़ा है। ऐसा कैसे है कि कटा हुआ है और मेरे समाधान कोई नहीं समझेगा? ऐसा कोई तरीका नहीं है कि आप बिना घंटे गंवाए उन रेगीक्स को अनटंगल कर लेंगे।
गिरावट

उस कोड को श्री रेसिग ने स्वयं लिखा था और उससे पूछताछ नहीं की जानी चाहिए। दूसरी ओर, आपकी गुमनामी के कारण, विश्वसनीयता में कमी है। भले ही, एक रेगेक्स समाधान छोटा है, बहुत तेजी से चलता है और रेगेक्स की मूल बातों में सीखा किसी द्वारा भी आसानी से पढ़ा जाता है। इसमें शायद ही "अनटंगल" बहुत ज्यादा है: /\b\w/g...
vsync

1

यह समाधान खुराक रेगेक्स का उपयोग नहीं करता है, उच्चारण पात्रों का समर्थन करता है और लगभग हर ब्राउज़र द्वारा समर्थित भी है।

function capitalizeIt(str) {
    if (str && typeof(str) === "string") {
        str = str.split(" ");    
        for (var i = 0, x = str.length; i < x; i++) {
            if (str[i]) {
                str[i] = str[i][0].toUpperCase() + str[i].substr(1);
            }
        }
        return str.join(" ");
    } else {
        return str;
    }
}    

उपयोग:

कंसोल.लॉग (CapitalizeIt ('जावास्क्रिप्ट प्रोग्राम के अंदर çao 2nd));

आउटपुट:

Çao 2nd इनसाइड जावास्क्रिप्ट प्रोग्राम


1
इस तरह से बहुत सारे CPU संसाधनों की खपत होती है। जावास्क्रिप्ट आदिम मूल्यों को परिवर्तित नहीं करता है, जिसका अर्थ है कि ऑपरेशन किए जाने पर हर बार एक नया निर्माण होता है। "रिप्लेस", एक्सप्लेन ग्रैटिया जैसे देशी कार्यों का उपयोग करना बेहतर है।
डैनियल बंदेइरा

0

http://www.mediacollege.com/internet/javascript/text/case-capitalize.html कई उत्तरों में से एक है।

Google ऐसी सभी समस्याओं के लिए आपकी आवश्यकता हो सकती है।

व्हाट्सएप द्वारा स्ट्रिंग को विभाजित करने के लिए एक भोली दृष्टिकोण होगा, परिणामस्वरूप सरणी के प्रत्येक तत्व के पहले अक्षर को कैपिटल करें और इसे वापस एक साथ जोड़ दें। यह मौजूदा पूंजीकरण को अकेला छोड़ देता है (जैसे HTML HTML रहता है और Html की तरह मूर्खतापूर्ण कुछ नहीं बनता है)। यदि आप ऐसा नहीं चाहते हैं, तो प्रभावित होने से पहले पूरे स्ट्रिंग को लोअरकेस में बदल दें।


0

यह कोड डॉट के बाद शब्दों को कैपिटलाइज़ करता है:

function capitalizeAfterPeriod(input) { 
    var text = '';
    var str = $(input).val();
    text = convert(str.toLowerCase().split('. ')).join('. ');
    var textoFormatado = convert(text.split('.')).join('.');
    $(input).val(textoFormatado);
}

function convert(str) {
   for(var i = 0; i < str.length; i++){
      str[i] = str[i].split('');
      if (str[i][0] !== undefined) {
         str[i][0] = str[i][0].toUpperCase();
      }
      str[i] = str[i].join('');
   }
   return str;
}

0

मुझे आसान प्रक्रिया के साथ जाना पसंद है। आसान पुनरावृत्ति के लिए पहले ऐरे में स्ट्रिंग बदलें, फिर मैप फ़ंक्शन फ़ंक्शन का उपयोग करके प्रत्येक शब्द को बदल दें जैसा आप चाहते हैं।

function capitalizeCase(str) {
    var arr = str.split(' ');
    var t;
    var newt;
    var newarr = arr.map(function(d){
        t = d.split('');
        newt = t.map(function(d, i){
                  if(i === 0) {
                     return d.toUpperCase();
                    }
                 return d.toLowerCase();
               });
        return newt.join('');
      });
    var s = newarr.join(' ');
    return s;
  }

0

Jquery या Javascipt इसे प्राप्त करने के लिए एक अंतर्निहित पद्धति प्रदान नहीं करता है।

सीएसएस परीक्षण परिवर्तन (पाठ-परिवर्तन: बड़ा करना;) वास्तव में स्ट्रिंग के डेटा को कैपिटलाइज़ नहीं करता है, लेकिन स्क्रीन पर एक पूंजीकृत प्रतिपादन दिखाता है।

यदि आप सादे वैनिलाजेएस का उपयोग करके डेटा स्तर में इसे प्राप्त करने के अधिक वैध तरीके की तलाश कर रहे हैं, तो इस समाधान का उपयोग करें =>

var capitalizeString = function (word) {    
    word = word.toLowerCase();
    if (word.indexOf(" ") != -1) { // passed param contains 1 + words
        word = word.replace(/\s/g, "--");
        var result = $.camelCase("-" + word);
        return result.replace(/-/g, " ");
    } else {
    return $.camelCase("-" + word);
    }
}


0

आप एक स्ट्रिंग में शब्दों को कैपिटल करने के लिए निम्नलिखित का उपयोग कर सकते हैं:

function capitalizeAll(str){

    var partes = str.split(' ');

    var nuevoStr = ""; 

    for(i=0; i<partes.length; i++){
    nuevoStr += " "+partes[i].toLowerCase().replace(/\b\w/g, l => l.toUpperCase()).trim(); 
    }    

    return nuevoStr;

}

0

वहाँ भी स्थान है: https://locutus.io/php/strings/ucwords/ जो इसे इस प्रकार परिभाषित करता है:

function ucwords(str) {
  //  discuss at: http://locutus.io/php/ucwords/
  // original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
  // improved by: Waldo Malqui Silva (http://waldo.malqui.info)
  // improved by: Robin
  // improved by: Kevin van Zonneveld (http://kvz.io)
  // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)
  // bugfixed by: Cetvertacov Alexandr (https://github.com/cetver)
  //    input by: James (http://www.james-bell.co.uk/)
  //   example 1: ucwords('kevin van  zonneveld')
  //   returns 1: 'Kevin Van  Zonneveld'
  //   example 2: ucwords('HELLO WORLD')
  //   returns 2: 'HELLO WORLD'
  //   example 3: ucwords('у мэри был маленький ягненок и она его очень любила')
  //   returns 3: 'У Мэри Был Маленький Ягненок И Она Его Очень Любила'
  //   example 4: ucwords('τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός')
  //   returns 4: 'Τάχιστη Αλώπηξ Βαφής Ψημένη Γη, Δρασκελίζει Υπέρ Νωθρού Κυνός'

  return (str + '').replace(/^(.)|\s+(.)/g, function ($1) {
    return $1.toUpperCase();
  });
};

0

मैं इस उद्देश्य के लिए regex का उपयोग करूंगा:

myString = '  this Is my sTring.  ';
myString.trim().toLowerCase().replace(/\w\S*/g, (w) => (w.replace(/^\w/, (c) => c.toUpperCase())));
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.