अपरकेस का पहला अक्षर


88

मैंने वेब पर खोज की है, मेरी मदद करने के लिए कुछ भी नहीं पा सकता है। मैं एक चर के भीतर प्रत्येक शब्द ऊपरी मामले का पहला अक्षर बनाना चाहता हूं।

अब तक मैंने कोशिश की है:

toUpperCase();

और कोई भाग्य नहीं था, क्योंकि यह सभी पत्रों को ऊपर ले जाता है।


जवाबों:


227

पूंजी पत्र के साथ एक शब्द शुरू करने वाले निचले अक्षरों को बदलने के लिए .replace[एमडीएन] फ़ंक्शन का उपयोग करें ।

var str = "hello world";
str = str.toLowerCase().replace(/\b[a-z]/g, function(letter) {
    return letter.toUpperCase();
});
alert(str); //Displays "Hello World"


संपादित करें: यदि आप सिर्फ az के अलावा शब्द वर्णों के साथ काम कर रहे हैं, तो निम्नलिखित (अधिक जटिल) नियमित अभिव्यक्ति आपके उद्देश्यों के लिए बेहतर हो सकती है।

var str = "петр данилович björn über ñaque αλφα";
str = str.toLowerCase().replace(/^[\u00C0-\u1FFF\u2C00-\uD7FF\w]|\s[\u00C0-\u1FFF\u2C00-\uD7FF\w]/g, function(letter) {
    return letter.toUpperCase();
});
alert(str); //Displays "Петр Данилович Björn Über Ñaque Αλφα"


1
यह जैसे नामों के साथ काम नहीं करता है Björn Lüchinger, यह बन जाता है BjöRn LüChinger। इसके लिए कोई फिक्स?
डेडिकेटेड

2
@Dediqated उस ओर इशारा करने के लिए धन्यवाद, मुझे पता है कि क्या संपादन मदद करता है।
पीटर ओल्सन

बहुत अच्छा काम करता है! अगर मैं सिर्फ स्ट्रिंग के पहले चरित्र को अपरकेस में बदलना चाहता था तो क्या संशोधन होना चाहिए, इस पर कोई संकेत? (हर एक शब्द के बजाय)
एंड्रेस एसके

6
@andufo ज़रूर, यह वास्तव में करने के लिए बहुत आसान है। बस का उपयोग करेंstr[0].toUpperCase() + str.slice(1)
पीटर ओल्सन

@PeterOlson उत्तर के लिए धन्यवाद! मैंने var first = str.slice(0, str.indexOf(' ')); str = first.toLowerCase().replace(/^[\u00C0-\u1FFF\u2C00-\uD7FF\w]|\s[\u00C0-\u1FFF\u2C00-\uD7FF\w]/g, function(letter) { return letter.toUpperCase(); }) + str.substr(first.length);विशेष पात्रों को कवर करने के लिए उपयोग करना समाप्त कर दिया।
एंड्रेस एसके

72

बहुत आसान तरीका:

$('#test').css('textTransform', 'capitalize');

मुझे सही रास्ते पर ले जाने के लिए @ क्रेडिट को कुछ श्रेय देना होगा। आप लोग जो भी प्रस्ताव दे रहे हैं, उससे कहीं ज्यादा सरल।


32
यह केवल स्ट्रिंग के दृश्य प्रतिनिधित्व को बदलता है न कि स्वयं स्ट्रिंग मान को।
टॉक्सिक

1
आप इसे DB से प्राप्त किए गए चर पर लागू नहीं कर सकते, लेकिन अन्य तरीकों के लिए यह विधि बहुत साफ है
आर्मंड

3
नोट: text-transform:capitalizeसभी CAPS को प्रभावित नहीं करेगा।
बॉब स्टेन

1
क्या होगा यदि स्ट्रिंग (चर) को केवल प्रदर्शित करने के अलावा कुछ ऑपरेशन के लिए उपयोग किया जाना चाहिए?
Fr0zenFyr

ध्यान दें कि यह पूंजी के साथ इनपुट को बचाएगा, यह केवल इसे दृश्य में बदल देगा
शेरिफ एल्कासैबी

25

http://phpjs.org/functions/ucwords/69 का एक अच्छा उदाहरण है

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

(संक्षिप्तता के लिए स्रोत से टिप्पणी छोड़ दी गई टिप्पणी। कृपया विवरण के लिए लिंक किए गए स्रोत देखें)

संपादित करें: कृपया ध्यान दें कि यह फ़ंक्शन प्रत्येक शब्द के पहले अक्षर को इंगित करता है (जैसा कि आपका प्रश्न पूछता है) और न केवल एक स्ट्रिंग का पहला अक्षर (जैसा कि आपका प्रश्न शीर्षक पूछता है)


यह स्वीकार किए गए एक समाधान से बेहतर काम करता है जो एपोस्ट्रोफ के बाद एक वाक्य में शब्दों को कैपिटल करता है, इसलिए उदाहरण के लिए "मैं एक उदाहरण हूं" मैं "एक उदाहरण हूं"
छिपकली

आपके मूल स्ट्रिंग में अंडरस्कोर होने पर काम नहीं करता है, कृपया बेहतर प्रदर्शन के लिए इसे अपने REGEX में जोड़ें। स्व
रुस्लान Abuzant

1
@RuslanAbuzant यह एक अलग सवाल का जवाब होगा। एक शब्द विभाजक (या सामान्य रिक्त स्थान) के रूप में एक अंडरस्कोर की व्याख्या करना ठीक है, लेकिन वह नहीं है जो ओपी पूछ रहा था ... और यहां तक ​​कि अपने उपयोग के मामले को भी तोड़ सकता है।
जोनाथन फिंगलैंड

1
ucwords () बेकार है। यह यूनिकोड के साथ काम नहीं करता है (विशेषकर सिरिलिक, ग्रीक और अन्य केंद्रीय यूरोपीय वर्णमाला के साथ)। बैक-एंड पर बेहतर उपयोग mb_convert_case (), उदाहरण: mb_convert_case ($ _ POST ['नाम'], MB_CASE_TITLE, 'utf-8');
एलेक्सी कुज़नेत्सोव

14

बस एक शुद्ध जावास्क्रिप्ट समाधान (कोई JQuery) जोड़ना चाहता था

function capitalize(str) {
  strVal = '';
  str = str.split(' ');
  for (var chr = 0; chr < str.length; chr++) {
    strVal += str[chr].substring(0, 1).toUpperCase() + str[chr].substring(1, str[chr].length) + ' '
  }
  return strVal
}

console.log(capitalize('hello world'));


1
धन्यवाद भाई, बस कुछ सही करना चाहते हैं। यह c < str.length;होना चाहिएchr < str.length;
लेयसम रोसारियो

13

मुझे लगता है कि आप पहले चरित्र को बाहर निकालने के लिए () और toUpperCase () का उपयोग कर सकते हैं, इसे अपरकेस कर सकते हैं, और फिर परिणाम के साथ अपने स्ट्रिंग के पहले चरित्र को बदल सकते हैं।

myString = "cheeseburger";
firstChar = myString.substring( 0, 1 ); // == "c"
firstChar.toUpperCase();
tail = myString.substring( 1 ); // == "heeseburger"
myString = firstChar + tail; // myString == "Cheeseburger"

मुझे लगता है कि आपको काम करना चाहिए। एक और बात पर विचार करना है कि अगर यह डेटा प्रदर्शित किया जा रहा है, तो आप अपने कंटेनर में एक वर्ग जोड़ सकते हैं जिसमें CSS गुण "टेक्स्ट-ट्रांसफॉर्मेशन: कैपिटलाइज़" हो।


फर्स्टचेयर = फर्स्टचेयर.टोउपर कैस () की तरह नहीं होना चाहिए; ? मैंने Node.js में कोड की कोशिश की और मुझे ऐसा करना पड़ा या कुछ भी नहीं बदला!
एड्रियन एडन

9

यदि आप उपयोग करने जा रहे हैं तो ऐसा करने के लिए, आपको वास्तव में जावास्क्रिप्ट की भी आवश्यकता नहीं है

$('#test').css('textTransform', 'capitalize');

ऐसा क्यों नहीं जैसे css

#test,h1,h2,h3 { text-transform: capitalize; }

या इसे एक कक्षा के रूप में करें और जहाँ भी आपको आवश्यकता हो, उस कक्षा को लागू करें

.ucwords { text-transform: capitalize; }

4
Stackoverflow में आपका स्वागत है। आपका उत्तर एक विकल्प का सुझाव दे रहा है (जो कुछ उपयोग मामलों में पूरी तरह से मान्य हो सकता है), लेकिन वास्तव में सवाल का जवाब नहीं देता है। जैसा कि मैंने सवाल को समझा, लेखक वास्तव में जावास्क्रिप्ट चर को बदलना चाहता था, न कि यह केवल दृश्य प्रतिनिधित्व है।
हेलबेट

3
हाँ, लेकिन इस सवाल पर आने वाले अन्य लोग मेरे जैसे जावास्क्रिप्ट या सीएसएस के उत्तर के साथ ठीक हो सकते हैं, और यह वास्तव में मददगार था ...
ब्रायन पॉवेल

6

कभी सुना है substr()?

एक स्टार्टर के लिए:

$("#test").text($("#test").text().substr(0,1).toUpperCase()+$("#test").text().substr(1,$("#test").text().length));


[अपडेट करें:]

टिप के लिए @FelixKling का धन्यवाद :

$("#test").text(function(i, text) {
    return text.substr(0,1).toUpperCase() + text.substr(1);
});

4
text() चार बार बुलाने के बजाय , एक फंक्शन पास करें text():$("#test").text(function(i, text) { return text.substr(0,1).toUpperCase()+text.substr(1);});
फेलिक्स क्लिंग

1
यहाँ पुरानी लाशों को खोदना, लेकिन अगर यह मालूम था कि सामग्री किसी तत्व में चली जाती है, तो इसका उपयोग करना बहुत आसान होगा:$('#test').style.textTransform='capitalize';
राफेल हर्सकोविसी

बंद, @Dementic, लेकिन यह होना चाहिए: $('#test').css('textTransform', 'capitalize'); BTW, यह यहाँ का सबसे अच्छा जवाब है। मैं इसे एक उत्तर के रूप में प्रस्तुत करूँगा।
vbullinger

@vbullinger - मेरे कोड को जज न करें जब मैं इसे नशे में नरक के रूप में लिखता हूं :) और मुझे js पसंद है, jq नहीं, तो मेरा कोड गलत है, लेकिन बहुत ज्यादा नहींdocument.getElementById('test').style.textTransform='capitalize';
राफेल हर्सकोविसी

5

@ पीटर-ऑल्सन के उत्तर पर बिल्डिंग, मैंने jQuery के बिना एक अधिक वस्तु उन्मुख दृष्टिकोण लिया:

String.prototype.ucwords = function() {
    return this.toLowerCase().replace(/\b[a-z]/g, function(letter) {
        return letter.toUpperCase();
    });
}

alert("hello world".ucwords()); //Displays "Hello World"

उदाहरण: http://jsfiddle.net/LzaYH/1/


यह मेरी राय में, वास्तव में सबसे उचित तरीका है। मैं इसे toUpperCaseWordsजावास्क्रिप्ट toUpperCase()औरtoLowerCase()
एबी कैरोल


4

सबसे सरल तरीका

let str="hiren raiyani"
str.toLowerCase().replace(/(?<= )[^\s]|^./g, a => a.toUpperCase());

उपयोगकर्ता-परिभाषित फ़ंक्शन:

function capitalize(str){
 return str.toLowerCase().replace(/(?<= )[^\s]|^./g, a => a.toUpperCase());
}

आउटपुट: हिरेन रयानी

अपने उपयोगकर्ता-परिभाषित फ़ंक्शन या प्रत्यक्ष के रूप में कोड का उपयोग करें


3
var ar = 'foo bar spam egg'.split(/\W/);
for(var i=0; i<ar.length; i++) {
  ar[i] = ar[i].substr(0,1).toUpperCase() + ar[i].substr(1,ar[i].length-1) 
}
ar.join(' '); // Foo Bar Spam Egg

3

आप इस सरल कोड को PHP में ucwords की सुविधाओं के साथ आज़मा सकते हैं।

function ucWords(text) {
    return text.split(' ').map((txt) => (txt.substring(0, 1).toUpperCase() + txt.substring(1, txt.length))).join(' ');
}
ucWords('hello WORLD');

यह ऊपरी मामलों को अपरिवर्तित रखेगा।


3

यह निम्नलिखित के रूप में सरल है:

string = 'test';
newString = string[0].toUpperCase() + string.slice(1);
alert(newString);

2

पूरी तरह से @Dementric के उत्तर के आधार पर, यह समाधान एक सरल jQuery विधि, 'ucwords' के साथ कॉल करने के लिए तैयार है ... यहाँ योगदान करने वाले सभी का धन्यवाद !!!

$.extend({
ucwords : function(str) {
    strVal = '';
    str = str.split(' ');
    for (var chr = 0; chr < str.length; chr++) {
        strVal += str[chr].substring(0, 1).toUpperCase() + str[chr].substring(1, str[chr].length) + ' '
    }
    return strVal
}

});

उदाहरण: इसे विधि का उपयोग करके कहा जा सकता है

var string = "this is a test";
string = $.ucwords(string); // Returns "This Is A Test"

2

आप text-transform: capitalize;इस काम के लिए उपयोग कर सकते हैं -

HTML -

<input type="text" style="text-transform: capitalize;" />

JQuery -

$(document).ready(function (){
   var asdf = "WERTY UIOP";
   $('input').val(asdf.toLowerCase());
});

इसे इस्तेमाल करे

नोट: यह केवल स्ट्रिंग का दृश्य प्रतिनिधित्व बदल रहा है। यदि आप इस स्ट्रिंग को सचेत करते हैं तो यह हमेशा स्ट्रिंग का मूल मान दिखाती है।


0

पहले अक्षर को कैपिटल करने से पहले स्ट्रिंग को कम करना।

(दोनों का उपयोग Jquery सिंटैक्स)

function CapitaliseFirstLetter(elementId) {
    var txt = $("#" + elementId).val().toLowerCase();
    $("#" + elementId).val(txt.replace(/^(.)|\s(.)/g, function($1) {
    return $1.toUpperCase(); }));
    }

WHOLE स्ट्रिंग को कैपिटल करने के लिए एक फ़ंक्शन के अलावा:

function CapitaliseAllText(elementId) {
     var txt = $("#" + elementId).val();
     $("#" + elementId).val(txt.toUpperCase());
     }

पाठ बॉक्स पर क्लिक करने के लिए सिंटैक्स का उपयोग करें:

onClick="CapitaliseFirstLetter('TextId'); return false"

0

मैंने इस कोड का उपयोग किया है -

function ucword(str){
    str = str.toLowerCase().replace(/(^([a-zA-Z\p{M}]))|([ -][a-zA-Z\p{M}])/g, function(replace_latter) { 
        return replace_latter.toUpperCase();
    });  //Can use also /\b[a-z]/g
    return str;  //First letter capital in each word
}

var uc = ucword("good morning. how are you?");
alert(uc);

0

एचटीएमएल:

<input class="capitalize" name="Address" type="text" value="" />

JQuery के साथ जावास्क्रिप्ट:

$(".capitalize").bind("keyup change", function (e) {
        if ($(this).val().length == 1)
            $(this).val($(this).val().toUpperCase());
        $(this).val($(this).val().toLowerCase().replace(/\s[\p{L}a-z]/g, function (letter) {
            return letter.toUpperCase();
        }))
    });

0

बिना JQuery के

String.prototype.ucwords = function() {
    str = this.trim();
    return str.replace(/(^([a-zA-Z\p{M}]))|([ -][a-zA-Z\p{M}])/g, function(s){
        return s.toUpperCase();
    });
};

console.log('hello world'.ucwords()); // Display Hello World


0

यहाँ यूनिकोड-सुरक्षित यूकोड () फ़ंक्शन है, जो अतिरिक्त रूप से रूसी Расс-Ранцев जैसे दोहरे-अंतिम नामों का सम्मान करता है और कुछ महान नाम जैसे Honoré de Balzac, d'Artagnan, Vinn van Gogh, Otto von Bismarck, Sulaymān ibn Dāwūd आदि।

String.prototype.ucwords = function() {
  return this.toLowerCase()
    .replace(/(^|\s|\-)[^\s$]/g, function(m) {
       return m.toUpperCase();
    })
    // French, Arabic and some noble names...
    .replace(/\s(Of|De|Van|Von|Ibn|Из|Ван|Фон|Ибн)\s/g, function(m) { // Honoré de Balzac, Vincent van Gogh, Otto von Bismarck, Sulaymān ibn Dāwūd etc.
       return m.toLowerCase();
    })
    .replace(/(^|\s)(D|Д)(['’][^\s$])/g, function(m, p1, p2, p3) { // D'Artagnan or d'Artagnan / Д’Артаньян или д’Артаньян
       return p1 + (p1 === "" ? p2/*.toUpperCase()*/ : p2.toLowerCase()) + p3.toUpperCase();
    });
}

0

जेएस में पहला पत्र अपरकेस करने के लिए सबसे आसान तरीका है

var string = "made in india";

string =string .toLowerCase().replace(/\b[a-z]/g, function(letter){return  letter.toUpperCase();});

alert(string );

परिणाम: "मेड इन इंडिया"


0
var country= $('#country').val();

var con=country[0].toUpperCase();

ctr= country.replace(country[0], con);
   

सिर्फ जुगाड़ से कोई फंक्शन बनाने की जरूरत नहीं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.