Подтвердить что ты не робот

Проверьте, является ли первая буква слова большой буквы

Возможно ли в Javascript узнать, является ли первая буква слова большой буквы?

4b9b3361

Ответ 1

var word = "Someword";
console.log( word[0] === word[0].toUpperCase() );

или

var word = "Someword";
console.log( /[A-Z]/.test( word[0]) );

или

var word = "Someword";
console.log( /^[A-Z]/.test( word) );

Смотрите toUpperCase() и test()

Ответ 2

Другие ответы на этой странице отлично подходят для строк, которые, как известно, содержат только буквы без акцента A-Z. Если вы не можете гарантировать это (например, ввод пользователя), они могут дать неожиданные результаты: ложные срабатывания для некапитализуемых инициалов, таких как "1940-е годы" или "中文", или ложные негативы для инициативных или нериманских инициалов капитала, таких как "Łukasz" или "Łukasz", Александра".

Этот вариант возвращает true, если начальная буква представляет собой прописную букву, и только если это заглавная буква:

function initialIsCapital( word ){
  return word[0] !== word[0].toLowerCase();
}

Используйте .charAt(0) вместо [0] если вам нужна поддержка IE8. Какой быстрее меняется между браузерами.

Это позволяет избежать двух возможных ловушек с другими ответами:

  • Режимы, использующие [A-Z], не будут соответствовать акцентированным и другим подобным заглавным буквам, отличным от AZ, например, в Åland (Скандинавские острова) и Łukasz Польское название), включая заглавные буквы в нелатинских скриптах, таких как кириллица или греческий (например, Александра).

  • Подход с использованием word[0] === word[0].toUpperCase() вернет true для слов, начинающихся с не-букв, таких как 1940s, 17th, 123reg (название компании), аббревиатуры типа 2mrw или некоторые слова на некоторых африканских языках, например ! xūún или ǂǐ-sì. Он также будет обрабатывать любой ввод из алфавита, который не имеет заглавных букв, как заглавные буквы (например, 中文).

Поскольку этот подход с произвольным вводом-безопасностью столь же прост и не менее читабельен, как альтернативы, вероятно, лучше использовать его, даже если вы не ожидаете таких исключений.

Вот быстрый тест:

function a(word){
  return word[0] !== word[0].toLowerCase();
}
function b(word){
  return word[0] === word[0].toUpperCase();
}
function c(word){
  return /^[A-Z]/.test( word );
}
function test(word, answer){
  console.log( 'Should be '+answer+':',  a(word), b(word), c(word), '-------', word );
}

test( 'Łukasz', true ); // regex test fails, returns false
test( 'Александра', true ); // regex test fails, returns false
test( '1940s', false ); // .toUpperCase() test fails, returns true
test( '中文', false ); // .toUpperCase() test fails, returns true

test( 'ß', false ); // All pass on German "sharp S" that has no uppercase
test( 'Z̢̜̘͇̹̭a͎͚͔͕̩̬̭͈͞l̩̱̼̤̣g̲̪̱̼̘̜͟ợ̮̱͎̗̕ͅͅ', true ); // All pass. Phew, Zalgo not awakened 

Ответ 3

Да.

var str = "Hello";
if(str[0].toUpperCase() == str[0])
{
   window.alert('First character is upper case.');  
}

Ответ 4

Только для английских букв:

'A' => 65
'Z' => 90

Это означает, что каждое число между [65, 90] является заглавной буквой:

function startsWithCapitalLetter(word) {
  return word.charCodeAt(0) >= 65 && word.charCodeAt(0) <= 90;
}

Ответ 5

Вы можете сделать это несколькими способами:

var myWord = "Hello";

// with string functions
if (myWord.charAt(0) === myWord.charAt(0).toUpperCase()) { /* is upper */ }

// or for newer browsers that support array-style access to string characters
if (myWord[0] === myWord[0].toUpperCase()) { /* is upper */ }

// with regex - may not be appropriate for non-English uppercase
if (/^[A-Z]/.test(myWord) { /* is upper */ }

Обратите внимание, что доступ к символам типа myWord[0] в стиле массива является функцией ECMAScript 5 и не поддерживается в старых браузерах, поэтому (на данный момент) я бы рекомендовал . charAt().

Если вам нужно сделать этот тест, вы можете сделать небольшую функцию:

function firstLetterIsUpper(str) {
   var f = str.charAt(0);   // or str[0] if not supporting older browsers
   return f.toUpperCase() === f;
}

if (firstLetterIsUpper(myWord)) { /* do something */ }

Ответ 6

var string1 = "this is a string";
var string2 = "This is a string";

if(string1[0] == string1[0].toUpperCase())
    alert('is upper case');
else
    alert('is not upper case');


if(string2[0] == string2[0].toUpperCase())
    alert('is upper case');
else
    alert('is not upper case');

Ответ 7

Используя метод match прототипа строкового объекта:

const word = 'Someword';
console.log(word.match(new RegExp(/^[A-Z]/)) !== null);

Ответ 8

Это может относиться к некоторым из предоставленных полезных ответов, но я очень новичок, так что простите, если я трачу ваше время:

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

if(paragraphText[0].toUpperCase() != paragraphText[0]){ // This is false for spaces, but true for lowercase letters}

if(paragraphText[0].toLowerCase() == paragraphText[0]){ // This is true for spaces; however, the second character was uppercase, so it was not what I was looking for}

Я не решил, как обращаться с пространством (ами). Ответ, который я имею до сих пор, состоит в том, чтобы пройтись, пока не будет найдено первое письмо.

Пожалуйста, дайте мне знать, если у кого-то есть более быстрый путь, или если я полностью не в курсе. Я очень неопытный, так что будьте нежны. В некотором смысле, это может не дать ответа на вопрос, но в любой ситуации может быть пробел, и сценарий может его пропустить. Я сталкивался с этим и с текстом в электронных таблицах, поэтому он может иметь определенную ценность.