İnternette aradım bana yardımcı olacak hiçbir şey bulamıyorum. Bir değişken içinde her kelimenin ilk harfini büyük yapmak istiyorum.
Şimdiye kadar denedim:
toUpperCase();
Ve tüm harfleri büyük olduğu için hiç şansı yoktu.
İnternette aradım bana yardımcı olacak hiçbir şey bulamıyorum. Bir değişken içinde her kelimenin ilk harfini büyük yapmak istiyorum.
Şimdiye kadar denedim:
toUpperCase();
Ve tüm harfleri büyük olduğu için hiç şansı yoktu.
Yanıtlar:
Bir kelimeye büyük harfle başlayan küçük harfleri değiştirmek için .replace[MDN] işlevini kullanın.
var str = "hello world";
str = str.toLowerCase().replace(/\b[a-z]/g, function(letter) {
return letter.toUpperCase();
});
alert(str); //Displays "Hello World"
Düzenleme: Az dışında kelime karakterleriyle uğraşıyorsanız, aşağıdaki (daha karmaşık) normal ifade amaçlarınıza daha uygun olabilir.
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 Αλφα"
Björn Lüchinger, bu olur BjöRn LüChinger. Bunun için herhangi bir düzeltme var mı?
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);Özel karakterleri de kapsamak için kullanmayı bıraktım .
Çok daha kolay yol:
$('#test').css('textTransform', 'capitalize');
@Dementic'e beni doğru yola yönlendirdiği için biraz kredi vermeliyim. Önerdiğiniz her şeyden çok daha basit.
text-transform:capitalizeTÜM BÜYÜK HARFLERİ etkilemeyecektir.
http://phpjs.org/functions/ucwords:569 iyi bir örnek var
function ucwords (str) {
return (str + '').replace(/^([a-z])|\s+([a-z])/g, function ($1) {
return $1.toUpperCase();
});
}
(kısalık için kaynaktan çıkarılmış işlev yorumu. Ayrıntılar için lütfen bağlantılı kaynağa bakın)
DÜZENLEME: Lütfen bu işlevin (sorunuzun sorduğu gibi) her bir kelimenin ilk harfini büyük harf olarak kullandığını ve bir dizenin yalnızca ilk harfini (soru başlığınızın sorduğu gibi) büyük harfle yazdığını unutmayın.
sadece saf bir javascript çözümü eklemek istedim (JQuery yok)
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'));
c < str.length;olmalıchr < str.length;
İlk karakteri çıkarmak, büyük harfle yazmak için substring () ve toUpperCase () kullanabileceğinizi ve ardından dizenizin ilk karakterini sonuçla değiştirebileceğinizi hayal ediyorum.
myString = "cheeseburger";
firstChar = myString.substring( 0, 1 ); // == "c"
firstChar.toUpperCase();
tail = myString.substring( 1 ); // == "heeseburger"
myString = firstChar + tail; // myString == "Cheeseburger"
Bunun senin için çalışacağını düşünüyorum. Dikkate alınması gereken bir diğer husus da, eğer bu veriler görüntüleniyorsa, kabına "text-transform: capitalize" CSS özelliğine sahip bir sınıf ekleyebileceğinizdir.
Bunu yapmak için, kullanacaksanız gerçekten Javascript'e ihtiyacınız yok
$('#test').css('textTransform', 'capitalize');
Bunu neden css gibi yapmıyorsun
#test,h1,h2,h3 { text-transform: capitalize; }
ya da sınıf olarak yapın ve bu sınıfı ihtiyacınız olan her yere uygulayın
.ucwords { text-transform: capitalize; }
Hiç duydun substr()mu?
Başlangıç için:
$("#test").text($("#test").text().substr(0,1).toUpperCase()+$("#test").text().substr(1,$("#test").text().length));
[Güncelleme:]
Bahşiş için @FelixKling'e teşekkürler :
$("#test").text(function(i, text) {
return text.substr(0,1).toUpperCase() + text.substr(1);
});
text() Dört kez çağırmak yerine, bir işlevi text()$("#test").text(function(i, text) { return text.substr(0,1).toUpperCase()+text.substr(1);});
$('#test').style.textTransform='capitalize';
$('#test').css('textTransform', 'capitalize'); BTW, buradaki en iyi cevap bu. Bunu bir cevap olarak sunacağım.
document.getElementById('test').style.textTransform='capitalize';
@ Peter-olson'ın cevabına dayanarak, jQuery olmadan daha nesne odaklı bir yaklaşım benimsedim:
String.prototype.ucwords = function() {
return this.toLowerCase().replace(/\b[a-z]/g, function(letter) {
return letter.toUpperCase();
});
}
alert("hello world".ucwords()); //Displays "Hello World"
Örnek: http://jsfiddle.net/LzaYH/1/
toUpperCaseWordsjavascript toUpperCase()vetoLowerCase()
En basit yol
let str="hiren raiyani"
str.toLowerCase().replace(/(?<= )[^\s]|^./g, a => a.toUpperCase());
kullanıcı tanımlı işlev:
function capitalize(str){
return str.toLowerCase().replace(/(?<= )[^\s]|^./g, a => a.toUpperCase());
}
çıktı: Hiren Raiyani
Kodu kullanıcı tanımlı işleviniz olarak veya doğrudan kullanın
var mystring = "hello World"
mystring = mystring.substring(0,1).toUpperCase() +
mystring.substring(1,mystring.length)
console.log(mystring) //gives you Hello World
Bu basit kodu PHP'deki ucwords özellikleriyle deneyebilirsiniz.
function ucWords(text) {
return text.split(' ').map((txt) => (txt.substring(0, 1).toUpperCase() + txt.substring(1, txt.length))).join(' ');
}
ucWords('hello WORLD');
Büyük Harfleri değiştirmeden tutacaktır.
Tamamen @Dementric'in cevabına dayanan bu çözüm, basit bir jQuery yöntemi olan 'ucwords' ile aramaya hazır ... Burada katkıda bulunan herkese teşekkürler !!!
$.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
}
});
ÖRNEK: Bu, yöntem kullanılarak çağrılabilir
var string = "this is a test";
string = $.ucwords(string); // Returns "This Is A Test"
text-transform: capitalize;Bu iş için kullanabilirsiniz -
HTML -
<input type="text" style="text-transform: capitalize;" />
JQuery -
$(document).ready(function (){
var asdf = "WERTY UIOP";
$('input').val(asdf.toLowerCase());
});
Not: Yalnızca dizenin görsel temsilini değiştirir. Bu dizeyi uyarırsanız, her zaman dizenin orijinal değerini gösterir.
İlk harfin büyük harfle yazılmasından önce küçültülecek dize.
(Her ikisi de Jquery sözdizimini kullanır)
function CapitaliseFirstLetter(elementId) {
var txt = $("#" + elementId).val().toLowerCase();
$("#" + elementId).val(txt.replace(/^(.)|\s(.)/g, function($1) {
return $1.toUpperCase(); }));
}
Ek olarak, BÜTÜN dizesini Büyük Harf haline getirmek için bir işlev:
function CapitaliseAllText(elementId) {
var txt = $("#" + elementId).val();
$("#" + elementId).val(txt.toUpperCase());
}
Bir metin kutusunun tıklama etkinliğinde kullanılacak sözdizimi:
onClick="CapitaliseFirstLetter('TextId'); return false"
Bu kodu kullandım -
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);
Html:
<input class="capitalize" name="Address" type="text" value="" />
JQuery ile Javascript:
$(".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();
}))
});
JQuery olmadan
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
var str = "HELLO WORLD HELLO WORLD HELLO WORLD HELLO WORLD";
str = str.replace(
/([A-Z])([A-Z]+)/g,
function (a, w1, w2) {
return w1 + w2.toLowerCase();
});
alert(str);
Rusça Засс-Ранцев gibi çift soyadlara ve Honoré de Balzac, d'Artagnan, Vincent van Gogh, Otto von Bismarck, Sulaymān ibn Dāwūd gibi bazı soylu isimlere ek olarak saygı duyan unicode güvenli ucwords () işlevi:
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();
});
}
JS'de ilk harfi büyük yazmanın en kolay yolu
var string = "made in india";
string =string .toLowerCase().replace(/\b[a-z]/g, function(letter){return letter.toUpperCase();});
alert(string );
Sonuç: "Hindistan Malı"