Saya telah mencari di web tidak dapat menemukan apa pun untuk membantu saya. Saya ingin membuat huruf pertama dari setiap kata menjadi huruf besar dalam variabel.
Sejauh ini saya sudah mencoba:
toUpperCase();
Dan tidak beruntung, karena huruf besar semua huruf.
javascript
jquery
ryryan
sumber
sumber
Jawaban:
Gunakan fungsi
.replace
[MDN] untuk mengganti huruf kecil yang mengawali kata dengan huruf kapital.var str = "hello world"; str = str.toLowerCase().replace(/\b[a-z]/g, function(letter) { return letter.toUpperCase(); }); alert(str); //Displays "Hello World"
Sunting: Jika Anda berurusan dengan karakter kata selain hanya az, ekspresi reguler berikut (lebih rumit) mungkin lebih sesuai dengan tujuan Anda.
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 Αλφα"
sumber
Björn Lüchinger
, ini menjadiBjöRn LüChinger
. Ada perbaikan untuk ini?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);
untuk menutupi karakter khusus juga.Cara yang jauh lebih mudah:
$('#test').css('textTransform', 'capitalize');
Saya harus memberi @Dementic beberapa pujian karena telah membawa saya ke jalan yang benar. Jauh lebih sederhana dari apapun yang kalian usulkan.
sumber
text-transform:capitalize
tidak akan mempengaruhi SEMUA HURUF BESAR.http://phpjs.org/functions/ucwords:569 memiliki contoh yang bagus
function ucwords (str) { return (str + '').replace(/^([a-z])|\s+([a-z])/g, function ($1) { return $1.toUpperCase(); }); }
(komentar fungsi dihilangkan dari sumber agar singkatnya. silakan lihat sumber tertaut untuk detailnya)
EDIT: Harap dicatat bahwa fungsi ini membuat huruf besar pertama dari setiap kata (seperti yang ditanyakan pertanyaan Anda) dan bukan hanya huruf pertama dari sebuah string (seperti yang diminta judul pertanyaan Anda)
sumber
hanya ingin menambahkan solusi javascript murni (tanpa 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'));
sumber
c < str.length;
seharusnyachr < str.length;
Saya membayangkan Anda bisa menggunakan substring () dan toUpperCase () untuk mengeluarkan karakter pertama, huruf besar, dan kemudian mengganti karakter pertama dari string Anda dengan hasilnya.
myString = "cheeseburger"; firstChar = myString.substring( 0, 1 ); // == "c" firstChar.toUpperCase(); tail = myString.substring( 1 ); // == "heeseburger" myString = firstChar + tail; // myString == "Cheeseburger"
Saya pikir itu seharusnya berhasil untuk Anda. Hal lain yang perlu dipertimbangkan adalah jika data ini ditampilkan, Anda dapat menambahkan kelas ke penampungnya yang memiliki properti CSS "text-transform: capitalize".
sumber
Untuk melakukan ini, Anda bahkan tidak membutuhkan Javascript jika Anda akan menggunakannya
$('#test').css('textTransform', 'capitalize');
Mengapa tidak melakukan ini seperti css
atau lakukan sebagai kelas dan terapkan kelas itu ke mana pun Anda membutuhkannya
sumber
Pernah dengar
substr()
?Untuk pemula:
$("#test").text($("#test").text().substr(0,1).toUpperCase()+$("#test").text().substr(1,$("#test").text().length));
[Memperbarui:]
Terima kasih kepada @FelixKling untuk tipnya:
$("#test").text(function(i, text) { return text.substr(0,1).toUpperCase() + text.substr(1); });
sumber
text()
empat kali, teruskan fungsi ketext()
:$("#test").text(function(i, text) { return text.substr(0,1).toUpperCase()+text.substr(1);});
$('#test').style.textTransform='capitalize';
$('#test').css('textTransform', 'capitalize');
BTW, ini jawaban terbaik di sini. Saya akan mengirimkannya sebagai jawaban.document.getElementById('test').style.textTransform='capitalize';
Berdasarkan jawaban @ peter-olson, saya mengambil pendekatan yang lebih berorientasi objek tanpa 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"
Contoh: http://jsfiddle.net/LzaYH/1/
sumber
toUpperCaseWords
sesuai dengan javascripttoUpperCase()
dantoLowerCase()
Cara paling sederhana
let str="hiren raiyani" str.toLowerCase().replace(/(?<= )[^\s]|^./g, a => a.toUpperCase());
fungsi yang ditentukan pengguna:
function capitalize(str){ return str.toLowerCase().replace(/(?<= )[^\s]|^./g, a => a.toUpperCase()); }
keluaran: Hiren Raiyani
Gunakan kode sebagai fungsi yang ditentukan pengguna atau langsung
sumber
var mystring = "hello World" mystring = mystring.substring(0,1).toUpperCase() + mystring.substring(1,mystring.length) console.log(mystring) //gives you Hello World
sumber
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
sumber
Anda dapat mencoba kode sederhana ini dengan fitur ucwords di PHP.
function ucWords(text) { return text.split(' ').map((txt) => (txt.substring(0, 1).toUpperCase() + txt.substring(1, txt.length))).join(' '); } ucWords('hello WORLD');
Ini akan menjaga Kasus Atas tidak berubah.
sumber
Ini sesederhana berikut ini:
string = 'test'; newString = string[0].toUpperCase() + string.slice(1); alert(newString);
sumber
Berdasarkan jawaban @Dementric sepenuhnya, solusi ini siap dipanggil dengan metode jQuery sederhana, 'ucwords' ... Terima kasih kepada semua orang yang berkontribusi di sini !!!
$.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 }
});
CONTOH: Ini bisa disebut menggunakan metode
var string = "this is a test"; string = $.ucwords(string); // Returns "This Is A Test"
sumber
Anda dapat menggunakan
text-transform: capitalize;
untuk pekerjaan ini -HTML -
<input type="text" style="text-transform: capitalize;" />
JQuery -
$(document).ready(function (){ var asdf = "WERTY UIOP"; $('input').val(asdf.toLowerCase()); });
Coba ini
Catatan: Ini hanya mengubah representasi visual dari string. Jika Anda memperingatkan string ini, itu selalu menunjukkan nilai asli dari string tersebut.
sumber
String yang diturunkan sebelum Kapitalisasi huruf pertama.
(Keduanya menggunakan sintaks Jquery)
function CapitaliseFirstLetter(elementId) { var txt = $("#" + elementId).val().toLowerCase(); $("#" + elementId).val(txt.replace(/^(.)|\s(.)/g, function($1) { return $1.toUpperCase(); })); }
Selain fungsi untuk memanfaatkan string SELURUH:
function CapitaliseAllText(elementId) { var txt = $("#" + elementId).val(); $("#" + elementId).val(txt.toUpperCase()); }
Sintaks yang akan digunakan pada acara klik kotak teks:
onClick="CapitaliseFirstLetter('TextId'); return false"
sumber
Saya telah menggunakan kode ini -
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);
sumber
Html:
<input class="capitalize" name="Address" type="text" value="" />
Javascript dengan 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(); })) });
sumber
Tanpa 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
sumber
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);
sumber
Berikut adalah fungsi ucwords () yang aman untuk unicode, yang juga menghormati nama belakang ganda seperti Rusia Засс-Ранцев dan beberapa nama mulia seperti Honoré de Balzac, d'Artagnan, Vincent van Gogh, Otto von Bismarck, Sulaymān ibn Dāwūd, dll:
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(); }); }
sumber
Cara termudah untuk huruf besar pertama di JS
var string = "made in india"; string =string .toLowerCase().replace(/\b[a-z]/g, function(letter){return letter.toUpperCase();}); alert(string );
Hasil: "Made In India"
sumber
var country= $('#country').val(); var con=country[0].toUpperCase(); ctr= country.replace(country[0], con);
tidak perlu membuat fungsi apapun hanya jugaaar
sumber