2011-09-19 22 views
15

मैं हर शब्द के पहले अक्षर को करने के लिए एक जावास्क्रिप्ट समारोह का उपयोग करना चाहते कैपिटल मेंहर शब्द के पहले अक्षर

जैसे:

THIS IS A TEST ---> This Is A Test 
this is a TEST ---> This Is A Test 
this is a test ---> This Is A Test 

क्या सरल JavaScript फ़ंक्शन

+0

http://stackoverflow.com/questions/1026069/capitalize-the-first-letter- ऑफ-स्ट्रिंग-इन-जावास्क्रिप्ट –

+0

लोअर केस पर जाएं, प्रत्येक शब्द के पहले चार पर व्हाइटस्पेस, अपपरकेस() द्वारा विभाजित करके अलग-अलग शब्दों में कटौती करें। – bdares

+2

@ reader_1000: यह प्रश्न स्ट्रिंग के पहले चार को अपरकेसिंग करने के बारे में है, जबकि यह प्रत्येक शब्द के पहले चार को उभरा है (जिस तरह से अधिक जटिल है और एक अलग समाधान की आवश्यकता है) – oezi

उत्तर

1

ले होगा ucwords from php.js पर एक नज़र डालें - यह ऐसा लगता है जो आप खोज रहे हैं। मूल रूप से, यह है:

function ucwords (str) { 
    return (str + '').replace(/^([a-z])|\s+([a-z])/g, function ($1) { 
     return $1.toUpperCase(); 
    }); 
} 

ध्यान दें कि THIS IS A TEST वापस आ जाएगी THIS IS A TEST तो आप इस तरह इसका इस्तेमाल करना होगा:

var oldstring = "THIS IS A TEST"; 
var newstring = ucwords(oldstring.toLowerCase()); 

या समारोह थोड़ा संशोधित:

function ucwords (str) { 
    str = (str + '').toLowerCase(); 
    return str.replace(/^([a-z])|\s+([a-z])/g, function ($1) { 
     return $1.toUpperCase(); 
    }); 
} 
var oldstring = "THIS IS A TEST"; 
var newstring = ucwords(oldstring); // This Is A Test 
+0

यह गैर-ASCII अक्षरों के लिए काम नहीं करेगा। – Joey

5
"tHiS iS a tESt".replace(/[^\s]+/g, function(str){ 
    return str.substr(0,1).toUpperCase()+str.substr(1).toLowerCase(); 
    }); 

अन्य संस्करण:

+०१२३५१६४१०६१
"tHiS iS a tESt".replace(/(\S)(\S*)/g, function($0,$1,$2){ 
    return $1.toUpperCase()+$2.toLowerCase(); 
    }); 
8
function capitalizeEachWord(str) 
{ 
    var words = str.split(" "); 
    var arr = []; 
    for (i in words) 
    { 
     temp = words[i].toLowerCase(); 
     temp = temp.charAt(0).toUpperCase() + temp.substring(1); 
     arr.push(temp); 
    } 
    return arr.join(" "); 
} 
+0

यह तब भी काम करता है जब पहला अक्षर – coorasse

33

यहाँ एक छोटे से एक लाइनर है कि मैं काम किया जाना

var str = 'this is an example'; 
str.replace(/\b./g, function(m){ return m.toUpperCase(); }); 

उपयोग कर रहा हूँ, लेकिन जॉन Resig एक बहुत भयानक स्क्रिप्ट कि मामलों का एक बहुत संभालती किया है http://ejohn.org/blog/title-capitalization-in-javascript/

अद्यतन

ES6 + उत्तर:

str.split(' ').map(s => s.charAt(0).toUpperCase() + s.slice(1)).join(' ');

शायद इससे भी बेहतर तरीका है। यह उच्चारण वर्णों पर काम करेगा।

+4

उच्चारण किया गया है, मुझे यह कितना सरल और संक्षिप्त लगता है। –

+0

बहुत अच्छा कोड। सरल और कुशल। – user3658423

+1

यह काम नहीं करता है अगर पहले अक्षर में उच्चारण – coorasse

1

यह एक अंतरिक्ष या एक पानी का छींटा

function capitalize(str){ 
    str = str.toLowerCase(); 
    return str.replace(/([^ -])([^ -]*)/gi,function(v,v1,v2){ return v1.toUpperCase()+v2; }); 
} 

उदाहरण से अलग हर शब्द को कैपिटल देगा:

  • मैं संतरे प्यार => मैं संतरे प्यार
  • एक अजीब दिखने वाक्य रचना => एक अजीब दिखने वाले सिंटेक्स

आदि

4

यह एक साधारण समाधान है जो वाक्य को सरणी में तोड़ देता है, फिर सरणी के माध्यम से पूंजीकृत शब्दों के साथ एक नई सरणी बनाते हैं।

function capitalize(str){ 

    var strArr = str.split(" "); 
    var newArr = []; 

    for(var i = 0 ; i < strArr.length ; i++){ 

    var FirstLetter = strArr[i].charAt(0).toUpperCase(); 
    var restOfWord = strArr[i].slice(1); 

    newArr[i] = FirstLetter + restOfWord; 

    } 

    return newArr.join(' '); 

} 
+0

+1 नहीं चुनेंगे – iamwhitebox

1

आप किसी लाइब्रेरी का उपयोग कर कोई आपत्ति नहीं है, तो आप इस्तेमाल कर सकते हैं Sugar.jscapitalize()

भुनाने (सभी = false) स्ट्रिंग में पहले वर्ण को बड़ा करता है और अन्य सभी पत्र downcases। यदि सब सत्य है, तो में सभी शब्द स्ट्रिंग को पूंजीकृत किया जाएगा।

उदाहरण:

'hello kitty'.capitalize()  -> 'Hello kitty' 
'hello kitty'.capitalize(true) -> 'Hello Kitty' 
1

आप भी फिल्टर का उपयोग कर दृष्टिकोण नीचे का उपयोग कर सकते हैं:

function Ucwords(str){ 
    var words = str.split(' '); 
    var arr = []; 
    words.filter(function(val){ 
     arr.push(val.charAt(0).toUpperCase()+ val.substr(1).toLowerCase());    
    }) 
    console.log(arr.join(" ").trim()); 
    return arr.join(" ").trim(); 
} 

Ucwords("THIS IS A TEST") //This Is A Test 

Ucwords("THIS ") //This 
संबंधित मुद्दे