বড় আকারের ভেরিয়েবলের অক্ষর


89

আমি ওয়েবে অনুসন্ধান করেছি আমাকে সাহায্য করার জন্য কিছুই খুঁজে পাচ্ছি না। আমি প্রতিটি শব্দের উপরের অক্ষরের প্রথম অক্ষরটি একটি ভেরিয়েবলের মধ্যে করতে চাই।

এখন পর্যন্ত আমি চেষ্টা করেছি:

toUpperCase();

এবং কোনও ভাগ্য ছিল না, কারণ এটি সমস্ত অক্ষরকে বড় করে দেয়।


উত্তর:


228

বড় হাতের অক্ষরগুলি প্রতিস্থাপন করতে .replace[এমডিএন] ফাংশনটি ব্যবহার করুন যা মূল শব্দের সাথে একটি শব্দ শুরু করে।

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


সম্পাদনা করুন: আপনি যদি শুধু এজেড ব্যতীত শব্দের অক্ষরগুলির সাথে কাজ করে থাকেন তবে নিম্নলিখিত (আরও জটিল) নিয়মিত অভিব্যক্তিটি আপনার উদ্দেশ্যগুলির পক্ষে আরও উপযুক্ত হতে পারে।

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 Αλφα"


4
এটি যেমন নামের সাথে কাজ করে না Björn Lüchinger, এটি হয়ে যায় BjöRn LüChinger। এটার জন্য কোন ফিক্স?
11:38

4
@ উত্সর্গীকৃত এটিকে নির্দেশ করার জন্য ধন্যবাদ, সম্পাদনাটি সাহায্য করে কিনা আমাকে জানান।
পিটার ওলসন

দুর্দান্ত কাজ! আমি যদি স্ট্রিংয়ের প্রথম চরিত্রটিকে বড়হাতে রূপান্তর করতে চাই তবে পরিবর্তনটি কী হওয়া উচিত তার কোনও ইঙ্গিত? (প্রতিটি শব্দের পরিবর্তে)
অ্যান্ড্রেস এসকে

6
@ অ্যান্ডুফো শিওর, এটি করা আসলেই অনেক সহজ। কেবল ব্যবহার করুনstr[0].toUpperCase() + str.slice(1)
পিটার ওলসন

@ পিটারলসন উত্তরের জন্য ধন্যবাদ! আমি 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);বিশেষ চরিত্রগুলিও কভার করে ব্যবহার শেষ করেছি।
আন্দ্রে এসকে

73

অনেক সহজ উপায়:

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

আমাকে সঠিক পথে নিয়ে যাওয়ার জন্য আমাকে @ ডেমেন্টিককে কিছু কৃতিত্ব দিতে হবে। আপনি যে লোকেরা প্রস্তাব দিচ্ছেন তার চেয়ে অনেক সহজ।


32
এটি কেবল স্ট্রিংয়ের ভিজ্যুয়াল উপস্থাপনা পরিবর্তন করে এবং স্ট্রিংয়ের মানটি নিজেই পরিবর্তন করে না।
toxaq

4
আপনি এটি ডিবি থেকে প্রাপ্ত ভেরিয়েবলগুলিতে প্রয়োগ করতে পারবেন না, তবে অন্যান্য স্থানগুলির জন্য এই পদ্ধতিটি খুব পরিষ্কার
Armand

4
দ্রষ্টব্য: text-transform:capitalizeসমস্ত ক্যাপগুলিকে প্রভাবিত করবে না।
বব স্টেইন

4
স্ট্রিং (পরিবর্তনশীল) কেবল প্রদর্শন ব্যতীত অন্য কোনও ক্রিয়াকলাপের জন্য অবশ্যই ব্যবহার করা উচিত?
Fr0zenFyr

নোট করুন যে এটি
মূলধনটির

25

http://phpjs.org/funitions/ucwords:569 এর একটি ভাল উদাহরণ রয়েছে

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

(বংশবৃদ্ধির জন্য উত্স থেকে বাদ দেওয়া ফাংশন মন্তব্য details বিশদের জন্য লিঙ্কযুক্ত উত্সটি দেখুন)

সম্পাদনা: দয়া করে নোট করুন যে এই ফাংশনটি প্রতিটি শব্দের প্রথম অক্ষরকে বড় করে তোলে (যেমন আপনার প্রশ্ন জিজ্ঞাসা করে) এবং কেবল কোনও স্ট্রিংয়ের প্রথম অক্ষর নয় (আপনার প্রশ্নের শিরোনাম জিজ্ঞাসা করে)


এটি গ্রহণযোগ্য একটি সমাধানের চেয়ে আরও ভাল কাজ করে যা
অ্যাডোস্ট্রোফের

আপনার যদি আপনার মূল স্ট্রিংয়ের আন্ডারস্কোর থাকে তবে কাজ করে না, দয়া করে ভাল পারফরম্যান্সের জন্য এটি আপনার REGEX এ যুক্ত করুন। টিওয়াই
রুসলান আবুজান্ট

4
@ রাস্লানআবুজান্ট এটি অন্য একটি প্রশ্নের উত্তর দিবে। একটি আন্ডারস্কোরকে শব্দের বিভাজক (বা সাধারণ ফাঁকা জায়গা) হিসাবে ব্যাখ্যা করা ভাল, তবে ওপি যা চেয়েছিল তা নয় ... এবং এমনকি তার ব্যবহারের ক্ষেত্রে কেসও ভেঙে দিতে পারে।
জোনাথন ফিংল্যান্ড 2

4
ucwords () চুষে দেয়। এটি ইউনিকোডের সাথে কাজ করে না (বিশেষত সিরিলিক, গ্রীক এবং অন্যান্য মধ্য ইউরোপীয় বর্ণমালা সহ)। ব্যাক-এন্ডে এমবি_কনভার্ট_কেস () ব্যবহার করা আরও ভাল, উদাহরণস্বরূপ: এমবি_কনভার্ট_কেস ($ _ পোস্ট ['নাম'], এমবি_সিএসিফলিট, 'ইউটিএফ -৮');
আলেক্সে কুজনেটসভ

15

কেবল একটি খাঁটি জাভাস্ক্রিপ্ট সমাধান যুক্ত করতে চেয়েছিলেন (কোনও জিকুয়েরি নেই)

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


4
ধন্যবাদ ভাই, কিছু ঠিক করতে চান। এটি c < str.length;হওয়া উচিতchr < str.length;
লেইসাম রোজারিও

13

আমি ভাবছি আপনি প্রথম অক্ষরটি বের করতে, বড় হাতের অক্ষরটি ব্যবহার করতে, এবং তারপরে ফলাফলের সাথে আপনার স্ট্রিংয়ের প্রথম অক্ষরটি প্রতিস্থাপন করতে আপনি সাবস্ট্রিং () এবং টুআপারকেস () ব্যবহার করতে পারেন।

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

আমি মনে করি এটি আপনার পক্ষে কাজ করা উচিত। আরেকটি বিষয় বিবেচনা করার বিষয় হ'ল যদি এই ডেটাটি প্রদর্শিত হয় তবে আপনি তার ধারকটিতে এমন একটি শ্রেণি যুক্ত করতে পারেন যাতে সিএসএসের বৈশিষ্ট্য রয়েছে "পাঠ্য-রূপান্তর: মূলধন"।


ফার্স্টচর = ফার্স্টচর.টোআপারকেস () এর মতো হওয়া উচিত নয়; ? আমি কোড নোড.জেজে চেষ্টা করেছিলাম এবং আমাকে এটি করতে হয়েছিল বা কিছুই পরিবর্তন হয়নি!
অ্যাড্রিয়ান অ্যাডেইন

9

এটি করার জন্য, আপনি যদি ব্যবহার করতে যাচ্ছেন তবে আপনার সত্যিই জাভাস্ক্রিপ্টের দরকার নেই

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

সিএসএসের মতো এটি কেন করবেন না

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

অথবা এটি একটি শ্রেণি হিসাবে করুন এবং যেখানে আপনার প্রয়োজন সেখানে সেই শ্রেণিটি প্রয়োগ করুন

.ucwords { text-transform: capitalize; }

4
স্ট্যাকওভারফ্লোতে আপনাকে স্বাগতম। আপনার উত্তরটি বিকল্প প্রস্তাব দিচ্ছে (এটি কিছু ব্যবহারের ক্ষেত্রে পুরোপুরি বৈধ হতে পারে), তবে সত্যই প্রশ্নের উত্তর দেয় না। আমি যেহেতু প্রশ্নটি বুঝতে পেরেছিলাম, লেখক জাভাস্ক্রিপ্টের ভেরিয়েবলকে প্রকৃতপক্ষে রূপান্তর করতে চেয়েছিলেন, কেবল এটি দৃশ্যমান উপস্থাপনা নয়।
হেলমার্ট

4
হ্যাঁ, তবে এই প্রশ্নটিতে আসা অন্যান্য ব্যক্তিরা আমার মতো জাভাস্ক্রিপ্ট বা সিএসএস উত্তর দিয়ে ঠিক থাকতে পারে এবং এটি সত্যিই সহায়ক ছিল ...
ব্রায়ান পাওয়েল

6

কখনও শুনেছেন substr()?

একটি স্টার্টার জন্য:

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


[হালনাগাদ:]

টিপটির জন্য @ ফেলিক্সক্লিংকে ধন্যবাদ :

$("#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);});
ফেলিক্স ক্লিং

4
এখানে পুরানো কর্পস খনন করা হচ্ছে, তবে যদি এটি জানা ছিল যে বিষয়বস্তু কোনও উপাদানটিতে চলে যায় তবে এটি ব্যবহার করা আরও সহজ হবে:$('#test').style.textTransform='capitalize';
রাফায়েল হার্সকোভিচি

ক্লোজ, @ ডেমেন্টিক তবে এটি হওয়া উচিত: বিটিডাব্লু, এটি $('#test').css('textTransform', 'capitalize'); এখানে সেরা উত্তর। আমি উত্তর হিসাবে জমা দেব।
vbullinger

@ ভবুলিংগার - আমার কোডটি যখন আমি নরক হিসাবে মাতাল লিখি তখন সেটিকে বিচার করবেন না :) এবং আমি জেএসকে পছন্দ করি না, জেকিও নয়, সুতরাং আমার কোডটি ভুল, তবে খুব বেশি নয়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()
বি ক্যারল

5

সহজ উপায়

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

ব্যবহারকারী-সংজ্ঞায়িত ফাংশন:

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

আউটপুট: হিরেন রায়ায়ন ani

আপনার ব্যবহারকারী-সংজ্ঞায়িত ফাংশন বা ডিরেক্ট হিসাবে কোড ব্যবহার করুন



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

আপনি পিএইচপি-তে ইউকওয়ার্ডের বৈশিষ্ট্য সহ এই সাধারণ কোডটি চেষ্টা করতে পারেন।

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

@ ডিমেট্রিকের উত্তরের উপর ভিত্তি করে, এই সমাধানটি একটি সহজ 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;এই কাজের জন্য ব্যবহার করতে পারেন -

এইচটিএমএল -

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

জিকুয়েরি -

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

এটা চেষ্টা কর

দ্রষ্টব্য: এটি কেবল স্ট্রিংয়ের ভিজ্যুয়াল উপস্থাপনা পরিবর্তন করে। আপনি যদি এই স্ট্রিংটি সতর্ক করেন তবে এটি সর্বদা স্ট্রিংয়ের মূল মানটি দেখায়।


0

প্রথম অক্ষরকে বড় বড় আকারের পূর্বে স্ট্রিংটি কম করা।

(উভয়ই জ্যাকুরি সিনট্যাক্স ব্যবহার করে)

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

পুরো স্ট্রিংকে বড় করে ফাংশন করুন:

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

এখানে ইউনিকোড-সেফ ইউকওয়ার্ডস () ফাংশন রয়েছে যা অতিরিক্ত হিসাবে রাশিয়ান Засс-like এবং ডোন আর্টাগানান, ভিনসেন্ট ভ্যান গগ, অটো ভন বিসমার্ক, সুলায়মন ইবনে দাওদ, ইত্যাদির মতো ডাবল-লাস্ট নামগুলিও সম্মান করে:

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

জগআর কোন ফাংশন তৈরি করার দরকার নেই

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.