কোনও স্ট্রিংয়ে শব্দকে বড় করে তোলার সর্বোত্তম পন্থা কোনটি?
কোনও স্ট্রিংয়ে শব্দকে বড় করে তোলার সর্বোত্তম পন্থা কোনটি?
উত্তর:
/**
* 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]
'CHECK THIS OUT'.capitalize(true) -> "Check This Out"
,। মনtrue
প্যারামিটার।
একটি স্ট্রিংয়ের মধ্যে শব্দকে বড় করার জন্য সংক্ষিপ্ততম প্রয়োগটি 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'
রেজেক্স মূলত প্রদত্ত স্ট্রিংয়ের মধ্যে প্রতিটি শব্দের প্রথম অক্ষরের সাথে মেলে এবং কেবলমাত্র সেই অক্ষরকে বড় হাতের কাছে রূপান্তর করে:
'ÿöur striñg'.replace(/(^|\s)\S/g, l => l.toUpperCase())
এই রেজেক্স প্রথম অক্ষরের সাথে মিলেছে এবং প্রদত্ত স্ট্রিংয়ের অভ্যন্তরে হোয়াইটস্পেসের পূর্বে থাকা প্রতিটি অ-শ্বেতস্পেস বর্ণের সাথে মেলে এবং কেবলমাত্র সেই অক্ষরকে বড় হাতের কাছে রূপান্তরিত করে:
নিম্নোক্তভাবে এখানে কোনও ক্যাপচারকারী দল ব্যবহার করা যেতে পারে /(?:^|\s)\S/g
যদিওg
আমাদের রেজেক্সের মধ্যে পতাকা যে কোনও উপায়ে ডিজাইন করে সাব-গ্রুপগুলি ক্যাপচার করবে না।
চিয়ার্স!
päijät-häme
হয়ে যায়PäIjäT-HäMe
EisbäRen
উদাহরণস্বরূপ, একটি ফলাফল।
Päijät-Häme
, তবে কমপক্ষে ক্রোম স্পেসে ড্যাশ (-) অন্তর্ভুক্ত নয়, সুতরাং নামের দ্বিতীয় অংশটি মূলধনযুক্ত নয়। হিসাবে স্থির করা যেতে পারে /(^|\s|-)\S/g
।
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
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() );
" javascript".toCapitalize() -> " javascript"
যেহেতু প্রত্যেকে আপনাকে জাভাস্ক্রিপ্টের উত্তর দিয়েছিল সেহেতু আপনি যা জিজ্ঞাসা করেছেন, তাই আমি সেই CSS সম্পত্তিটি ফেলে দেব text-transform: capitalize
ঠিক এটি করবে
আমি বুঝতে পারছি এই শক্তি আপনি যা বলছি না - আপনি আমাদের যা প্রেক্ষাপটে এই চালাচ্ছেন কোন না দিয়েছি - কিন্তু যদি এটা শুধু উপস্থাপনার জন্য আছে, আমি স্পষ্টভাবে সিএসএস বিকল্প সঙ্গে যেতে চাই।
জন রেসিগ (jQuery খ্যাতির) জন গ্রুবারের লেখা পার্ল স্ক্রিপ্টটি জাভাস্ক্রিপ্টে পোর্ট করেছিলেন। এই স্ক্রিপ্টটি আরও বুদ্ধিমান উপায়ে মূলধন করে, এটি উদাহরণস্বরূপ 'এর' এবং 'এবং' এর মতো ছোট শব্দকে বড় করে তোলে না।
আপনি এটি এখানে খুঁজে পেতে পারেন: জাভাস্ক্রিপ্টে শিরোনাম মূলধন
জাভাস্ক্রিপ্ট এবং এইচটিএমএল ব্যবহার করে
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.mediacolleg.com/internet/javascript/text/case-capitalize.html
if (object.capitalize) {...} else {String.prototype.capitalize = function()....}
যেখানে বস্তু টাইপ হয় String
। সুতরাং, এটি সত্যিই বেশ সহজ।
আইভোর উত্তরটি ভাল, তবে আমি মিলতে পছন্দ করি না \w
কারণ 0-9 এবং AZ মূলধন দেওয়ার দরকার নেই। আমরা সেগুলি উপেক্ষা করতে পারি এবং কেবলমাত্র এজেতে মিলতে পারি।
'your string'.replace(/\b[a-z]/g, match => match.toUpperCase())
// => 'Your String'
এটি একই আউটপুট, তবে আমি স্ব-ডকুমেন্টিং কোডের ক্ষেত্রে আরও পরিষ্কার মনে করি।
"Är Toaletten"
। আপনার উত্তর, বেশ ভাল উত্তর প্রদানের বছর পরে প্রদান করা হয়েছে, আলোচনায় ভূমিকা রাখে না ..
/\b\w/g
অ-ইংরাজী অক্ষরের জন্যও ব্যর্থ। প্রত্যেকেই ইউনিকোড চরিত্রগুলি নিয়ে কাজ করে না এবং এটি যারা চায় না তাদের এটির সাহায্য করবে।
console.log( _.capitalize('ÿöur striñg') );
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>
এটি করার একটি সংক্ষিপ্ত ES6 উপায়টি দেখতে এরকম কিছু দেখতে পাবে।
const capitalizeFirstLetter = s => s.charAt(0).toUpperCase() + s.slice(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
সম্পাদনা করুন: ম্যাপিংয়ের পাঠযোগ্যতার উন্নতি।
/\b\w/g
এই সলিউশন ডোজটি রেজেক্স ব্যবহার করে না, উচ্চারণযুক্ত অক্ষরগুলিকে সমর্থন করে এবং প্রায় প্রতিটি ব্রাউজার দ্বারা সমর্থিত।
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;
}
}
ব্যবহার:
কনসোল.লগ (ক্যাপিটালাইজআইটি ('জাভাস্ক্রিপ্ট প্রোগ্রামের মধ্যে 2 য় আও'));
আউটপুট:
জাভাস্ক্রিপ্ট প্রোগ্রাম এর ভিতরে 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'
'a áAA. bb . bbb .cc .d'.toCapital();
=>a Áaa. bb . Bbb .cc .d
http://www.mediacollege.com/internet/javascript/text/case-capitalize.html সেগুলির অনেক উত্তরগুলির মধ্যে একটি।
গুগল এই জাতীয় সমস্যার জন্য আপনার যা প্রয়োজন তা হতে পারে।
একটি নির্বোধ পন্থাটি হোয়াইটস্পেসের মাধ্যমে স্ট্রিংকে বিভক্ত করা, ফলস্বরূপ অ্যারের প্রতিটি উপাদানটির প্রথম অক্ষরকে মূলধন করা এবং এটি আবার একসাথে যোগদান করা। এটি বিদ্যমান মূলধনকে একা ফেলে রাখে (যেমন এইচটিএমএল এইচটিএমএল থাকে এবং এইচটিএমএল এর মতো নির্বোধ কিছু হয় না)। আপনি যদি এটি প্রভাবিত করতে না চান তবে পুরো স্ট্রিংটি বিভক্ত করার আগে ছোট হাতের অক্ষরে পরিণত করুন।
এই কোডটি বিন্দুর পরে শব্দকে মূলধন করে:
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;
}
আমি সহজ প্রক্রিয়া নিয়ে যেতে পছন্দ করি। সহজে পুনরাবৃত্তির জন্য প্রথমে স্ট্রিংটিকে অ্যারেতে পরিবর্তন করুন, তারপরে ম্যাপ ফাংশনটি ব্যবহার করে প্রতিটি শব্দ যেমন আপনি চান তেমন পরিবর্তন করুন।
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;
}
জ্যাকোয়ারি বা জাভাস্কিপ্ট এটি অর্জনের জন্য অন্তর্নির্মিত পদ্ধতি সরবরাহ করে না।
সিএসএস টেস্ট ট্রান্সফর্ম (টেক্সট-ট্রান্সফর্ম: মূলধন;) স্ট্রিংয়ের ডেটা সত্যিই বড় করে না তবে স্ক্রিনে মূলধন রেন্ডারিং দেখায়।
আপনি যদি সরল ভ্যানিলাজেএস ব্যবহার করে ডেটা স্তরে এটি অর্জনের আরও বৈধ উপায়ের সন্ধান করছেন তবে এই সমাধানটি => ব্যবহার করুন
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);
}
}
এটা ব্যবহার কর:
String.prototype.toTitleCase = function() {
return this.charAt(0).toUpperCase() + this.slice(1);
}
let str = 'text';
document.querySelector('#demo').innerText = str.toTitleCase();
<div class = "app">
<p id = "demo"></p>
</div>
স্ট্রিংয়ে শব্দগুলি মূলধন করতে আপনি নিম্নলিখিতটি ব্যবহার করতে পারেন:
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;
}
এখানে লোকোটাসও রয়েছে: 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();
});
};
আমি এই উদ্দেশ্যে পুনরায় ব্যবহার করব:
myString = ' this Is my sTring. ';
myString.trim().toLowerCase().replace(/\w\S*/g, (w) => (w.replace(/^\w/, (c) => c.toUpperCase())));
text-transform:capitalize;
।