किसी स्ट्रिंग में शब्दों को कैपिटलाइज़ करने के लिए सबसे अच्छा तरीका क्या है?
किसी स्ट्रिंग में शब्दों को कैपिटलाइज़ करने के लिए सबसे अच्छा तरीका क्या है?
जवाबों:
/**
* 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 की प्रसिद्धि) ने एक पर्ल लिपि को चित्रित किया, जिसे जॉन ग्रुबर ने जावास्क्रिप्ट में लिखा था। यह स्क्रिप्ट अधिक बुद्धिमान तरीके से कैपिटल करता है, उदाहरण के लिए 'और' और 'जैसे छोटे शब्दों को कैपिटलाइज़ नहीं करता है।
आप इसे यहां पा सकते हैं: जावास्क्रिप्ट में शीर्षक कैपिटलाइज़ेशन
जावास्क्रिप्ट और 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
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)
यह केवल पहले अक्षर को ऊपर ले जाता है और वाक्य के बाकी हिस्सों को प्रभावित नहीं करता है।
मेरा समाधान:
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
यह सबसे बुनियादी उपयोग के मामलों को कवर करना चाहिए।
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;
}
}
उपयोग:
कंसोल.लॉग (CapitalizeIt ('जावास्क्रिप्ट प्रोग्राम के अंदर çao 2nd));
आउटपुट:
Çao 2nd इनसाइड जावास्क्रिप्ट प्रोग्राम
http://www.mediacollege.com/internet/javascript/text/case-capitalize.html कई उत्तरों में से एक है।
Google ऐसी सभी समस्याओं के लिए आपकी आवश्यकता हो सकती है।
व्हाट्सएप द्वारा स्ट्रिंग को विभाजित करने के लिए एक भोली दृष्टिकोण होगा, परिणामस्वरूप सरणी के प्रत्येक तत्व के पहले अक्षर को कैपिटल करें और इसे वापस एक साथ जोड़ दें। यह मौजूदा पूंजीकरण को अकेला छोड़ देता है (जैसे HTML HTML रहता है और 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;
}
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);
}
}
इसे इस्तेमाल करो:
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();
});
};
मैं इस उद्देश्य के लिए regex का उपयोग करूंगा:
myString = ' this Is my sTring. ';
myString.trim().toLowerCase().replace(/\w\S*/g, (w) => (w.replace(/^\w/, (c) => c.toUpperCase())));
text-transform:capitalize;
।