магию es6 в одной строке … при этом читаемо!

— & Gt ;

  • "this is a test" Некоторые другие ответы изменяют "This is a test"
  • "the Eiffel Tower" — & gt ; "The Eiffel Tower"
  • "/index.html" (этот ответ используется как хорошо), но я бы посоветовал против этого сейчас из-за ремонтопригодности (трудно определить, где функция добавляется к "/index.html"
function capitalizeFirstLetter(string) {
    return string.charAt(0).toUpperCase()   string.slice(1);
}

Вы бы вызвали функцию, например так: String.prototype В CSS: prototype и может вызвать конфликты, если другой код использует то же имя / браузер добавит встроенную функцию с тем же именем в будущем).

Вот более объектно-ориентированный подход:

String.prototype.capitalize = function() {
    return this.charAt(0).toUpperCase()   this.slice(1);
}

Обновление:

"hello world".capitalize();

еще один простой метод:

"Hello world" 

Согласно комментариям ниже, это не работает в IE 7 или ниже.

p:first-letter {
    text-transform:capitalize;
}

Веб-сайт w3schools.com

function capitalize(s)
{
    return s[0].toUpperCase()   s.slice(1);
}

Обновление 2:

@ комментарий njzk2 ниже

), вы можете проверить наличие пустой строки:

Во избежание undefined для пустых строк (см. лучшие решения: В CSS:

function capitalize(s)
{
    return s && s[0].toUpperCase()   s.slice(1);
}

Вы также можете добавить его в

Первое решение , если вы заинтересованы в эффективности нескольких опубликованных методов:

p {
  text-transform: capitalize;
}

Второе решение , был ли он изначально или нет, и

function capitalizeFirstLetter(string) {
    return string.charAt(0).toUpperCase()   string.slice(1).toLowerCase();
}

Вы также можете добавить его в String.prototype, так что вы можете связать его другими методами:

String.prototype.capitalizeFirstLetter = function() {
    return this.charAt(0).toUpperCase()   this.slice(1).toLowerCase();
}

, и используйте его так:

'string'.capitalizeFirstLetter() // String

Третьего решения :

function ucFirstAllWords( str )
{
    var pieces = str.split(" ");
    for ( var i = 0; i < pieces.length; i   )
    {
        var j = pieces[i].charAt(0).toUpperCase();
        pieces[i] = j   pieces[i].substr(1).toLowerCase();
    }
    return pieces.join(" ");
}

, если вы заинтересованы в эффективности нескольких опубликованных методов:

Вот самые быстрые методы, основанные на этот тест jsperf (упорядочено от самого быстрого до самого медленного).

Как вы можете видите, первые два метода по существу сопоставимы с точки зрения производительности, в то время как изменение String.prototype, безусловно, самым медленным с точки зрения производительности.

// 10,889,187 operations/sec
function capitalizeFirstLetter(string) {
    return string[0].toUpperCase()   string.slice(1);
}

// 10,875,535 operations/sec
function capitalizeFirstLetter(string) {
    return string.charAt(0).toUpperCase()   string.slice(1);
}

// 4,632,536 operations/sec
function capitalizeFirstLetter(string) {
    return string.replace(/^./, string[0].toUpperCase());
}

// 1,977,828 operations/sec
String.prototype.capitalizeFirstLetter = function() {
    return this.charAt(0).toUpperCase()   this.slice(1);
}

enter image description here

Для другого случая мне нужно, чтобы оно использовало заглавные буквы первой буквы, а остальные строчные. Следующие случаи заставили меня изменить эту функцию:

//es5
function capitalize(string) {
    return string.charAt(0).toUpperCase()   string.slice(1).toLowerCase();
}
capitalize("alfredo")  // => "Alfredo"
capitalize("Alejandro")// => "Alejandro
capitalize("ALBERTO")  // => "Alberto"
capitalize("ArMaNdO")  // => "Armando"

// es6 using destructuring 
const capitalize = ([first,...rest]) => first.toUpperCase()   rest.join('').toLowerCase();
var string = "hello world";
string = string.charAt(0).toUpperCase()   string.slice(1);
alert(string);

Это решение ES6 2018 года :

const str = 'the Eiffel Tower';
const newStr = `${str[0].toUpperCase()}${str.slice(1)}`;
console.log('Original String:', str); // the Eiffel Tower
console.log('New String:', newStr); // The Eiffel Tower

Используйте первую букву всех слов в строке:

function ucFirstAllWords( str )
{
    var pieces = str.split(" ");
    for ( var i = 0; i < pieces.length; i   )
    {
        var j = pieces[i].charAt(0).toUpperCase();
        pieces[i] = j   pieces[i].substr(1);
    }
    return pieces.join(" ");
}

Если вы уже (или рассматриваете) использование lodash, решение простое:

_.upperFirst('fred');
// => 'Fred'

_.upperFirst('FRED');
// => 'FRED'

_.capitalize('fred') //=> 'Fred'

. См. Их документы: https://lodash.com/docs # прописными буквами

_.camelCase('Foo Bar'); //=> 'fooBar'

Обещание получает два обратных вызова в функции конструктора: разрешить и отклонить. Эти обратные вызовы внутри обещаний предоставляют нам детальный контроль над обработкой ошибок и успешными случаями. Обратный вызов разрешения используется, когда выполнение обещания выполнено успешно, а обратный вызов отклонения используется для обработки ошибок.

_.lowerFirst('Fred');
// => 'fred'

_.lowerFirst('FRED');
// => 'fRED'

_.snakeCase('Foo Bar');
// => 'foo_bar'

Vanilla js для первого верхнего регистра:

function upperCaseFirst(str){
    return str.charAt(0).toUpperCase()   str.substring(1);
}

добавить RegExp очень умна в приеме дат в нескольких форматах. /^./

String.prototype.capitalize = function () {
  return this.replace(/^./, function (match) {
    return match.toUpperCase();
  });
};

И для всех любителей кофе:

String::capitalize = ->
  @replace /^./, (match) ->
    match.toUpperCase()

… и для всех парней, которые думают, что есть лучший способ сделать это без расширения собственных прототипов:

var capitalize = function (input) {
  return input.replace(/^./, function (match) {
    return match.toUpperCase();
  });
};
String.prototype.capitalize = function(allWords) {
   return (allWords) ? // if all words
      this.split(' ').map(word => word.capitalize()).join(' ') : //break down phrase to words then  recursive calls until capitalizing all words
      this.charAt(0).toUpperCase()   this.slice(1); // if allWords is undefined , capitalize only the first word , mean the first char of the whole string
}

лучшее резюме библиотек соответствия URL

 "capitalize just the first word".capitalize(); ==> "Capitalize just the first word"
 "capitalize all words".capitalize(true); ==> "Capitalize All Words"

Обновить ноябрь 2016 (ES6), просто для удовольствия: { *} «Другое письмо (Lo)»

const capitalize = (string = '') => [...string].map(    //convert to array with each item is a char of string by using spread operator (...)
    (char, index) => index ? char : char.toUpperCase()  // index true means not equal 0 , so (!index) is the first char which is capitalized by `toUpperCase()` method
 ).join('')                                             //return back to string

позволяет легко добавлять обработчики событий программно. capitalize("hello") // Hello

Если вы используете Underscore.js или number , подчеркивание .string библиотека предоставляет расширения строк, в том числе прописные:

_. capitalize (string) Преобразует первую букву строки в верхний регистр.

Пример:

_.capitalize("foo bar") == "Foo bar"

и использует цикл while (вместо

p::first-letter {
  text-transform: uppercase;
}
  • Несмотря на то, что меня называют ::first-letter setInterval облегчает отмену будущего выполнения вашего кода. Если вы используете setTimeout, вы должны отслеживать идентификатор таймера на случай, если вы захотите отменить его позже. Выберите каждый из [a] и переберите все из [b]: Результат: 1, 5 , то есть в случае строки %a, этот селектор будет применяться к { *} Пользователи с % и как таковой a это должно быть перед всеми маршрутизаторами
  • Вот почему flexbox имеет ограниченную емкость для построения сеток. Это также причина, по которой :first-letter).

Я создал простой Javascript функция для доступа к параметрам GET из URL.

, поскольку существует множество ответов, но в ES2015 нет ни одного, который бы эффективно решал исходную проблему, я придумал следующее:

const capitalizeFirstChar = str => str.charAt(0).toUpperCase()   str.substring(1);

Замечания

  • parameters => function css : arrow Функция Глядя на вывод
  • Я пошел с именем capitalizeFirstChar вывод будет: capitalizeFirstLetter, потому что OP не запрашивал код, который использует первую букву во всей строке, а самый первый символ (если, конечно, это буква) ,
  • const дает нам возможность объявить capitalizeFirstChar Так что я думаю, чтобы упростить это, это означает:
  • В тесте, который я выполнил, не было существенной разницы между { *} затем можно сохранить каждый необходимый ключ в пустом объекте, который передается как string.charAt(0) и string[0]. Заметьте, однако, что string[0] счастливым взломом! { *} и другая версия, которая поддерживает обратный вызов, когда селектор не существует undefined для пустой строки, поэтому ее следует переписать в string && string[0] Например:
  • string.substring(1) быстрее, чем string.slice(1) Глядя на вывод

Тест

  • 4,956,962 операций / с ± 3,03 % для этого решения,
  • 4,577,946 операций / с ± 1,2 % для ответа с наибольшим количеством голосов.
  • Создан с помощью JSBench.me в Google Chrome 57.

Solutions' comparison

var capitalized = yourstring[0].toUpperCase()   yourstring.substr(1);

В CSS это выглядит проще:

<style type="text/css">
    p.capitalize {text-transform:capitalize;}
</style>
<p class="capitalize">This is some text.</p>

Это из свойства преобразования текста CSS W3Schools CSS first ).

Этот вопрос был задан ранее и уже имеет ответ. Если эти ответы не полностью отвечают на ваш вопрос, пожалуйста, Так что попробуйте создать класс для этого, чтобы вы могли использовать его глобально, например: , в общем , если вы можете решить что-то с помощью CSS, сначала сделайте это, затем попробуйте JavaScript, чтобы решить ваши проблемы, поэтому в этом случае попробуйте использовать :first-letter в CSS и применения text-transform:capitalize;

и назвать его, как показано ниже: .first-letter-uppercase является частью спецификации

.first-letter-uppercase:first-letter {
    text-transform:capitalize;
}

Также альтернативным вариантом является JavaScript, поэтому лучше всего будет что-то вроде этого:

function capitalizeTxt(txt) {
  return txt.charAt(0).toUpperCase()   txt.slice(1); //or if you want lowercase the rest txt.slice(1).toLowerCase();
}

и назовите его следующим образом:

capitalizeTxt('this is a test'); // return 'This is a test'
capitalizeTxt('the Eiffel Tower'); // return 'The Eiffel Tower'
capitalizeTxt('/index.html');  // return '/index.html'
capitalizeTxt('alireza');  // return 'Alireza'

Если вы хотите использовать ее снова и снова, лучше присоединить ее к нативной строке javascript, поэтому что-то вроде ниже:

String.prototype.capitalizeTxt = String.prototype.capitalizeTxt || function() {
    return this.charAt(0).toUpperCase()   this.slice(1);
}

(сокращение от «первая буква в верхнем регистре») :

'this is a test'.capitalizeTxt(); // return 'This is a test'
'the Eiffel Tower'.capitalizeTxt(); // return 'The Eiffel Tower'
'/index.html'.capitalizeTxt();  // return '/index.html'
'alireza'.capitalizeTxt();  // return 'Alireza'

У меня есть простой PHP-скрипт, который я пытаюсь выполнить междоменный запрос CORS: & { ****} хА ; & # хА ; & {амп ***} {л} ***? PHP & { ****} заголовок xA ; (& quot ; Access-Control-Allow-Origin: * & quot ;) ; & # Заголовок xA ; (& quot ; Заголовки контроля доступа: * & quot ;) {*** } & # хА ; … & # Xd ; & # хА ; Тем не менее, я все еще получаю …

function capitalize (text) {
    return text.charAt(0).toUpperCase()   text.slice(1).toLowerCase();
}

Это гарантирует, что следующий текст будет изменен:

TEST => Test
This Is A TeST => This is a test
function capitalize(s) {
    // returns the first letter capitalized   the string from index 1 and out aka. the rest of the string
    return s[0].toUpperCase()   s.substr(1);
}


// examples
capitalize('this is a test');
=> 'This is a test'

capitalize('the Eiffel Tower');
=> 'The Eiffel Tower'

capitalize('/index.html');
=> '/index.html'

Вот функция, называемая ucfirst () Вы можете использовать строку с заглавной буквы, вызвав

function ucfirst(str) {
    var firstLetter = str.substr(0, 1);
    return firstLetter.toUpperCase()   str.substr(1);
}

— например, ucfirst («некоторая строка») Она работает, разбивая строку на две части. В первой строке он вытаскивает

ucfirst("this is a test") --> "This is a test"

firstLetter.toUpperCase () firstLetter клон firstLetter путем вызова Вы можете подумать, что это не удастся для пустой строки, и на самом деле в языке, подобном C, вам придется учитывать это. Однако в JavaScript, когда вы берете подстроку пустой строки, вы просто возвращаете пустую строку. Как элегантно обнаружить простой в JavaScript? str.substr (1) Глядя на вывод

Ознакомьтесь с этим решением:

String.prototype.capitalize = function(){
    return this.replace( /(^|s)([a-z])/g , function(m,p1,p2){ return p1 p2.toUpperCase();
    } );
};

И функции очень просты:

capitalizedString = someString.capitalize();

Это текстовая строка = & Gt ; Это текстовая строка

var str = "test string";
str = str.substring(0,1).toUpperCase()   str.substring(1);

Например: заменить . Для ES6:

'foo'.replace(/^./, str => str.toUpperCase())

result:

'Foo'

соответствует первому символу (

var stringVal = 'master';
stringVal.replace(/^./, stringVal[0].toUpperCase()); // returns Master 
yourString.replace(/^[a-z]/, function(m){ return m.toUpperCase() });

Выбранный элемент предотвратил

Переменная ucfirst Функция работает, если вы делаете это так.

function ucfirst(str) {
    var firstLetter = str.slice(0,1);
    return firstLetter.toUpperCase()   str.substring(1);
}

Спасибо J-P за акларацию.

yourString.replace(/w/, c => c.toUpperCase())

я нашел эту функцию стрелки проще всего. С такими мощными инструментами вы делаете предположение, что что-то не так в вашем JS, помещаете выходные данные отладки (не забывайте переносить в Функциональный подход w) вашей строки и преобразование его в верхний регистр. Ничего более сложного не нужно.

функциональность без использования jQuery? Я знаю, что при использовании

string[0].toUpperCase()   string.substring(1)

Тогда вы могли бы

const capitalize = ([s, ...tring]) =>
  [s.toUpperCase(), ...tring]
    .join('');

Как лучше всего проверить, не задано ли свойство объекта в JavaScript?

const titleCase = str => 
  str
    .split(' ')
    .map(capitalize)
    .join(' ')