Как я могу проверить, является ли буква в строке прописными или строчными, используя JavaScript?

308

Как я могу проверить, является ли буква в строке прописными или строчными, используя JavaScript?

Джо
источник
3
Могу ли я просто уточнить вопрос - вы хотите проверить, является ли конкретная буква в строке верхним или нижним - или вы хотите проверить, содержит ли вся строка какую-либо букву в верхнем или нижнем регистре. если это последнее, то как вы предлагаете получить результат, не просматривая строку и не проверяя по одной букве за раз?
Джош
3
jsperf.com/isupper-comparison/5 Несколько идей, и вы можете проверить их на скорость.
Одино - Велмонт
2
Идея № 4 ( [:upper:]) быстрая и очень крутая, за исключением того, что она не работает, см. Мой комментарий ниже и мой исправленный jsperf.com/isupper-comparison/7 .
Энтони Хэтчкинс
3
str == str.toUpperCase();возвращает истину или ложь
Jacksonkr

Ответы:

330

Ответ от josh и maleki вернет true в верхнем и нижнем регистре, если символ или вся строка числовые. делая результат ложным результатом. пример с использованием Джош

var character = '5';
if (character == character.toUpperCase()) {
 alert ('upper case true');
}
if (character == character.toLowerCase()){
 alert ('lower case true');
}

Другой способ - сначала проверить его, если он числовой, в противном случае проверить его, например, в верхнем или нижнем регистре.

var strings = 'this iS a TeSt 523 Now!';
var i=0;
var character='';
while (i <= strings.length){
    character = strings.charAt(i);
    if (!isNaN(character * 1)){
        alert('character is numeric');
    }else{
        if (character == character.toUpperCase()) {
            alert ('upper case true');
        }
        if (character == character.toLowerCase()){
            alert ('lower case true');
        }
    }
    i++;
}
Льюис Чианчи
источник
20
Разве у вас не будет такого же ложного результата, если символ не является ни числовым, ни буквенным, например пунктуацией?
LarsH
6
@LarsH посмотреть это: stackoverflow.com/questions/1027224/…
ciembor
2
Это действительно старый вопрос, но что случилось со случайным 'ch' var?
JS
1
Этот код предупредит, что знаки препинания, такие !как цифры.
Бармар
2
@JS Это опечатка, должно бытьvar character='';
Beejor
62
if (character == character.toLowerCase())
{
  // The character is lowercase
}
else
{
  // The character is uppercase
}
Даниэль Вандерслуис
источник
@ anon58192932 я что-то упустил? Этот вопрос был о JavaScript.
Майкл Дорст
45

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

var letters = ['a', 'b', 'c', 'A', 'B', 'C', '(', ')', '+', '-', '~', '*'];

​​​for (var i = 0; i<letters.length; i++) {
    if (letters[i] === letters[i].toUpperCase()
        && letters[i] !== letters[i].toLowerCase()) {
        console.log(letters[i] + ": " + true);
    } else {
        console.log(letters[i] + ": " + false);
    }
}​

Вы можете проверить это здесь: http://jsfiddle.net/Axfxz/ (используйте Firebug или sth).

​​​for (var i = 0; i<letters.length; i++) {
    if (letters[i] !== letters[i].toUpperCase()
        && letters[i] === letters[i].toLowerCase()) {
        console.log(letters[i] + ": " + true);
    } else {
        console.log(letters[i] + ": " + false);
    }
}​

и это для строчных букв :).

ciembor
источник
1
Кстати, также работает с акцентированными символами, такими как «É», «С» и «ñ».
Хави
5
К сожалению, есть строчные буквы, которые не имеют заглавных букв (и, возможно, наоборот). Немецкий «ß» - это строчная буква, но если вы примените к нему вторую функцию, это приведет к ложному.
jplatte
39

Проблема с другими ответами состоит в том, что некоторые символы, такие как цифры или знаки препинания, также возвращают true, когда проверяются на строчные и прописные буквы.

Я нашел, что это работает очень хорошо для этого:

function isLowerCase(str)
{
    return str == str.toLowerCase() && str != str.toUpperCase();
}

Это будет работать для пунктуации, цифр и букв:

assert(isLowerCase("a"))
assert(!isLowerCase("Ü"))
assert(!isLowerCase("4"))
assert(!isLowerCase("_"))

Чтобы проверить одно письмо, просто позвоните, используя isLowerCase(str[charIndex])

WebFreak001
источник
4
Не знаю, почему другие ответы проголосовали. Это единственное решение , которое я мог думать, а - логика бытия «делает характер имеют верхний && нижний регистр вариантов Если да , то возвращают ли это верхний или нижний регистр?»
аааааа
Извините, но это, кажется, дубликат другого трехлетнего ответа .
Гауранг Тандон
3
@GaurangTandon да, через 2 года после ответа я тоже это заметил, но раньше ничего не заметил, потому что он обернут в цикл for, что-то записывает на консоль и, в общем, не является фрагментом кода многократного использования, поэтому я и (основываясь на результатах голосования по этому вопросу) ответ) многие другие люди, естественно, просто пропустили ответ. Поэтому я думаю, что хорошо иметь такой быстрый ответ на копирование, в отличие от другого ответа.
WebFreak001
Конвертировать всю строку только для того, чтобы проверить значение ASCII одного символа? Расточительное.
инженер
25
const isUpperCase = (string) => /^[A-Z]*$/.test(string)

затем :

isUpperCase('A') // true
isUpperCase('a') // false
Абденнур ТУМИ
источник
4
лучший ответ, безусловно, быстрый, без выделения памяти или преобразования данных.
Мартин Шеффер
20

Вы можете использовать тест регулярного выражения и toUpperCaseметод:

String.prototype.charAtIsUpper = function (atpos){
      var chr = this.charAt(atpos);
      return /[A-Z]|[\u0080-\u024F]/.test(chr) && chr === chr.toUpperCase();
};
// usage (note: character position is zero based)
'hi There'.charAtIsUpper(3);      //=> true
'BLUE CURAÇAO'.charAtIsUpper(9);  //=> true
'Hello, World!'.charAtIsUpper(5); //=> false

Смотрите также

KooiInc
источник
2
@LarsH: я изменил (и упростил) метод-прототип. Теперь это включает диакритические знаки
KooiInc
1
Почему сравнение && chr === chr.toUpperCase();?
Flame_Phoenix
3
@Flame_Phoenix Диапазон \u0080-\u024Fможет содержать диакритические знаки в нижнем регистре, поэтому тест должен также проверять сам символ.
KooiInc
16
function isUpperCase(myString) { 
  return (myString == myString.toUpperCase()); 
} 
function isLowerCase(myString) { 
  return (myString == myString.toLowerCase()); 
} 
мистифицировать
источник
1
я полагаю, что это решение работает только в том случае, если строка длиной в один символ и этот символ является символом интереса ... вам нужно сначала получить символ перед вызовом любого из этих методов
zaczap
3
@zaczap - неверно. Они преобразуют (а затем проверяют) всю строку.
scunliffe
3
+1 к комментариям - этот ответ слегка отклонен по отношению к исходному вопросу, в котором задан вопрос о письме в строке (не всей строке)
belugabob
2
Давайте не будем забывать о строгой проверке равенства! === FTW!
Джеймс
1
@all - исправить, он будет проверять только целую строку - вы можете просмотреть буквы внутри строки, чтобы проверить каждую из них.
Джош
10

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

function isUpperCase(myString, pos) { 
    return (myString.charAt(pos) == myString.charAt(pos).toUpperCase()); 
}   

function isLowerCase(myString, pos) {
    return (myString.charAt(pos) == myString.charAt(pos).toLowerCase()); 
}
Maleki
источник
=== за лучшую практику
РАВИ
8

Вы также можете использовать регулярное выражение для явного определения прописных букв латинского алфавита.

isUpperCase = function(char) {
  return !!/[A-Z]/.exec(char[0]);
};

РЕДАКТИРОВАТЬ: вышеупомянутая функция подходит для ASCII / Basic Latin Unicode, который, вероятно, все, что вам когда-либо будет интересно. Следующая версия также поддерживает блоки Latin-1 Supplement и Greek и Coptic Unicode ... На случай, если вам это понадобится по какой-то причине.

isUpperCase = function(char) {
  return !!/[A-ZÀ-ÖØ-ÞΆΈ-ΏΑ-ΫϢϤϦϨϪϬϮϴϷϹϺϽ-Ͽ]/.exec(char[0]);
};

Эта стратегия начинает рушиться, если вам нужна дополнительная поддержка (в верхнем регистре?), Поскольку некоторые блоки смешивают символы верхнего и нижнего регистра.

натуральный
источник
@RobertReiz Действительно? Это не работает для не римских персонажей.
Бармар
В нем отсутствуют тонны других языковых символов, например польских. По этой причине решение, которое использует сравнение с .toLowerCase()или .toUpperCase()является предпочтительным, так как они поддерживают большинство языков внутри страны.
Кравец
7

Хороший ответ на этот вопрос должен быть кратким, правильно обрабатывать юникод и иметь дело с пустыми строками и нулями.

function isUpperCase(c) {
    return !!c && c != c.toLocaleLowerCase();
}

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

Оригинальный вопрос, заданный специально о тестировании первого персонажа. Чтобы ваш код был простым и понятным, я бы выделил первый символ из строки отдельно от проверки, является ли это верхним регистром.

Стивен Нельсон
источник
5

Есть очень простой ответ, который никто не упомянул:

function isLowerCase(str) {
    return str !== str.toUpperCase();
}

Если str.toUpperCase()не возвращает то же самое str, это должно быть в нижнем регистре. Чтобы проверить верхний регистр, измените его на str !== str.toLowererCase().

В отличие от некоторых других ответов, он корректно работает с не-буквенными символами (возвращает false) и работает с другими алфавитами, символами с ударением и т. Д.

Джеймс
источник
Я собирался похвастаться этим открытием, но ты был первым. Полезно определить, является ли первый символ заглавными буквами и буквой сразу
Pawel
Предпочитаю ответ Артура ван Аккера: нет необходимости тратить процессор, конвертируя всю строку в верхний регистр, просто чтобы проверить , является ли один символ заглавным. Вы можете просто выполнить проверку диапазона ASCII для этого символа. Конверсия работает, конечно, но это ленивое кодирование.
инженер
@ Инженер, но ответ Аккера неправильный "É"- не строчные.
Джеймс
5
function isCapital(ch){
    return ch.charCodeAt() >= 65 && ch.charCodeAt() <= 90;
}
Артур ван Акер
источник
1
Или просто return (ch.charCodeAt() >= 65 && ch.charCodeAt() <= 90).
инженер
4

Лучший способ - использовать регулярное выражение, троичный оператор и встроенный .test()метод для строк.

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

/[a-z]/i.test(your-character-here)

Это вернет TRUE of FALSE в зависимости от того, совпадает ли ваш символ с набором символов в регулярном выражении. Наше регулярное выражение проверяет все буквы az /[a-z]/независимо от их регистра благодаря iфлагу.

Итак, базовый тест будет:

var theAnswer = "";
if (/[a-z]/i.test(your-character-here)) {
  theAnswer = "It's a letter."
}

Теперь нам нужно определить, является ли он верхним или нижним регистром. Итак, если мы удалим iфлаг из нашего регулярного выражения, то наш код выше будет проверять строчные буквы az. И если мы добавим еще одно ifутверждение в elseнашем первом ifутверждении, мы можем проверить и верхний регистр, используя AZ. Как это:

var theAnswer = "";
if (/[a-z]/.test(your-character-here)) {
  theAnswer = "It's a lower case letter."
} else if (/[A-Z]/.test(your-character-here)) {
  theAnswer = "It's an upper case letter.";
}

И на всякий случай, если это не буква, мы можем добавить еще одно утверждение:

var theAnswer = "";
if (/[a-z]/.test(your-character-here)) {
  theAnswer = "It's a lower case letter."
} else if (/[A-Z]/.test(your-character-here)) {
  theAnswer = "It's an upper case letter.";
} else {
  theAnswer = "It's not a letter."
}

Приведенный выше код будет работать. Но это некрасиво. Вместо этого мы можем использовать «троичный оператор» для замены наших if-elseутверждений выше. Тернарные операторы являются просто краткими простыми способами кодирования if-else. Синтаксис прост:

(statement-to-be-evaluated) ? (code-if-true) : (code-if-false)

И они тоже могут быть вложены друг в друга. Так что функция может выглядеть так:

var theAnswer = "";
function whichCase(theLetter) {
  theAnswer = /[a-z]/.test(theLetter) ? "It's lower case." : "";
  theAnswer = /[A-Z]/.test(theLetter) ? "It's upper case." : "";
  return(theAnswer);
}

Вышеприведенный код выглядит хорошо, но не совсем сработает, потому что, если наш символ в нижнем регистре, theAnswerпри проверке на верхний регистр устанавливается значение «», поэтому давайте вложим их:

var theAnswer = "";
function whichCase(theLetter) {
  theAnswer = /[a-z]/.test(theLetter) ? "It's lower case." : (/[A-Z]/.test(theLetter) ? "It's upper case." : "It's not a letter.");
  return(theAnswer);
}

Это будет отлично работать! Но нет необходимости иметь две отдельные строки для установки переменной theAnswerи ее возврата. И мы должны использовать letи constвместо var(смотрите те, если вы не знаете , почему). Как только мы внесем эти изменения:

function whichCase(theLetter) {
  return(/[A-Z]/.test(theLetter) ? "It's upper case." : (/[a-z]/.test(theLetter) ? "It's lower case." : "It's not a letter.")); 
}

И мы получаем элегантный, лаконичный кусок кода. ;)

Захари Путхофф
источник
3

Это простое и понятное решение с использованием простого регулярного выражения.

// Get specific char in string
const char = string.charAt(index);

const isLowerCaseLetter = (/[a-z]/.test(char));
const isUpperCaseLetter = (/[A-Z]/.test(char));
Gibolt
источник
2

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

  var array = ['a', 'b', 'c', 'A', 'B', 'C', '(', ')', '+', '-', '~', '*'];
  var character = array.join('')
      console.log(character)

  var test = function(search){
      upperCase = search.match(/[A-Z]/g)
      console.log(upperCase)

      lowerCase = search.match(/[a-z]/g)
      console.log(lowerCase)
   }

   test(character)
user3449311
источник
2

Вы также можете использовать это, он проверит строку для строчных и прописных букв

var s = "a"
if(/[a-z]/.test(s)){
  alert ('lower case true');
}

if(/[A-Z]/.test(s)) {
 alert ('upper case true'); 
}
Химаншу Теотия
источник
Добавьте некоторое объяснение с ответом о том, как этот ответ помогает ОП в исправлении текущей проблемы
ρяσѕρєя K
2

Это проверяет ВСЮ строку, а не только первую букву. Я думал, что поделюсь этим со всеми здесь.

Вот функция, которая использует регулярное выражение для проверки букв строки; он возвращает истину, если буква заглавная (AZ). Затем мы уменьшаем массив true / false до одного значения. Если она равна длине строки, это означает, что все буквы прошли тест регулярного выражения, что означает, что строка является заглавной. Если нет, строка в нижнем регистре.

const isUpperCase = (str) => {
  let result = str
    .split('')
    .map(letter => /[A-Z]/.test(letter))
    .reduce((a, b) => a + b);

  return result === str.length;
}

console.log(isUpperCase('123')); // false
console.log('123' === '123'.toUpperCase()); // true
Мэтью
источник
1

Вот как я это сделал недавно:

1) Убедитесь, что символ / строка sстрочные

s.toLowerCase() == s && s.toUpperCase() != s

2) Проверьте sпрописными буквами

s.toUpperCase() == s && s.toLowerCase() != s

Охватывает случаи, когда sсодержит неалфавитные символы и диакритические знаки.

Кристиан Паску
источник
1
function checkCharType (charToCheck) {
    // body... 
    var returnValue = "O";
    var charCode = charToCheck.charCodeAt(0);

    if(charCode >= "A".charCodeAt(0) && charCode <= "Z".charCodeAt(0)){

        returnValue = "U";

    }else if (charCode >= "a".charCodeAt(0) &&
                charCode <= "z".charCodeAt(0) ){
        returnValue = "L";
    }else if (charCode >= "0".charCodeAt(0) &&
            charCode <= "9".charCodeAt(0)  ) {
        returnValue = "N";
    }
    return returnValue;
}

var myString = prompt("Enter Some text: ", "Hello world !");

switch (checkCharType(myString)) {
    case "U":
        // statements_1
        document.write("First character was upper case");
        break;

    case "L":
        document.write("First character was a lower case");
        break;
    case "N":
        document.write("First character was a number");
        break
    default:
        // statements_def
        document.write("First character was not a character or a number");
        break;
}
  1. Определите функцию checkCharType (). Объявляя переменную returnValue и инициализируя ее символом «O», чтобы указать, что это какое-то другое значение.

  2. U в верхнем регистре; L для строчных букв; N для числа

  3. Используйте метод charCodeAt (), чтобы получить код символа первого символа.

  4. Использование оператора if, который проверяет, в какой диапазон значений попадает код символа.

  5. Если он находится между кодами символов для A и Z, его заглавными буквами, код символа между a и z, его строчными буквами. и так далее.

  6. "А" .charCode (0)

    var myChar = new String ("A"); myChar.charCodeAt (0); «А»: цифровой код «65»

  7. Проверьте строку
Fenici
источник
1

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

var lower_case = function(letter){
    lowers = "abcdefghijklmnopqrstuvwxyz";
    return letter === letter.toLowerCase() && lowers.indexOf(letter) >= 0
};

var upper_case = function(letter){
    uppers = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    return letter === letter.toUpperCase() && uppers.indexOf(letter) >= 0
};

2 ¢

JSMorgan
источник
1
Как вы положили в 2 ¢
JosephDoggie
1

Смотрите мой комментарий по выбранному ответу. Другие решения, которые ограничивают таблицу ASCII или используют фактические символьные литералы, полностью игнорируют Unicode и несколько сотен других символов, которые имеют регистр.

Этот код установит для переменной caseGroup значение:

  • 1 для верхнего регистра
  • -1 для нижнего регистра
  • 0 для без дела

    var caseGroup = (character.toLowerCase() == character.toUpperCase() ? 0 : (character == character.toUpperCase() ? 1 : -1));

Вы можете испечь это в нечто вроде этого ...

    function determineCase(character) {
        return (character.toLowerCase() == character.toUpperCase() ? 0 : (character == character.toUpperCase() ? 1 : -1));
    }

    function isUpper(character) {
        return determineCase(character) == 1;
    }

    function isLower(character) {
        return determineCase(character) == -1;
    }

    function hasCase(character) {
        return determineCase(character) != 0;
    }
Соник борода
источник
1
function checkCase(c){
    var u = c.toUpperCase();
    return (c.toLowerCase() === u ? -1 : (c === u ? 1 : 0));
};

На основании комментария Sonic Beard к основному ответу. Я изменил логику в результате:

  • 0: строчные

  • 1: прописные буквы

  • -1: ни

pasx
источник
1

Другой способ - сравнить персонажа с пустым объектом, я не знаю, почему он работает, но он работает:

for (let i = 1; i <= 26; i++) {
   const letter = (i + 9).toString(36).toUpperCase();
   console.log('letter', letter, 'is upper', letter<{}); // returns true
}
for (let i = 1; i <= 26; i++) {
   const letter = (i + 9).toString(36);
   console.log('letter', letter, 'is upper', letter<{}); // returns false
}

так в функции:

function charIsUpper(character) {
   return character<{};
}

РЕДАКТИРОВАТЬ : он не работает с акцентами и диакритическими знаками, поэтому его можно удалить

function charIsUpper(character) {
   return character
           .normalize('NFD')
           .replace(/[\u0300-\u036f]/g, '')<{};
}
Жюльен МЕТРАЛЬ
источник
1
Это работает, потому что строковое представление объекта есть [object Object]. Вы в основном проверяете, стоит ли код символа буквы раньше [. Поскольку коды символов для соответственно Z, [, aравны 90, 91, 97, сравнение верно для прописных букв и ложно для строчных. Другими словами, это такой же хакерский способ сделать это, как использовать цифры base-36 для получения букв алфавита.
Radulfr
@radulfr Интересная вещь, я думал, что это было что-то подобное, но у меня не было точного ответа, по сути, этот метод не работает с character.normalize("NFD").replace(/[\u0300-\u036f]/g
ударением в
0

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

function isUpperCase(str) {
    for (var i = 0, len = str.length; i < len; i++) {
        var letter = str.charAt(i);
        var keyCode = letter.charCodeAt(i);
        if (keyCode > 96 && keyCode < 123) {
            return false;
        }
    }

    return true;
}
Shedolamack
источник
0

Один я использую (обратите внимание, что это не делает "TestString" как "Tstst String" или "Test String").

function seperateCapitalised(capitalisedString) {
    if (typeof capitalisedString !== "string" || capitalisedString.length === 0)
        return capitalisedString;

    var newStr = capitalisedString[0];
    for (var i = 1; i < capitalisedString.length; i++) {
        var char = capitalisedString[i];

        if (char === char.toUpperCase() && isNaN(char)) {
            newStr += ' ' + char;
        }
        else {
            newStr += char;
        }
    }
    return newStr;
}
Фред Джонсон
источник
0

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

let countUpperCase = 0;
let i = 0;
while (i <= string.length) {
  const character = string.charAt(i);
  if (character === character.toUpperCase() && character !== character.toLowerCase()) {
    countUpperCase++;
  }
  i++;
}
Tacaza
источник
0

Просто проверьте значение ASCII

// IsLower verify that a string does not contains upper char
func IsLower(str string) bool {
    for i := range str {
        ascii := int(str[i])
        if ascii < 91 && ascii > 64 {
            return false
        }
    }
    return true
}
alessiosavi
источник
0

Стивен НельсонсФункция преобразована в прототип с множеством тестовых примеров.

Я также добавил целые строки в функцию для полноты.

Смотрите код для дополнительных комментариев.

/* Please note, there's no requirement to trim any leading or trailing white
spaces. This will remove any digits in the whole string example returning the
correct result. */

String.prototype.isUpperCase = function(arg) {
var re = new RegExp('\\s*\\d+\\s*', 'g');
if (arg.wholeString) {return this.replace(re, '') == this.replace(re, '').toUpperCase()} else
return !!this && this != this.toLocaleLowerCase();
}

console.log('\r\nString.prototype.isUpperCase, whole string examples');
console.log(' DDD is ' + ' DDD'.isUpperCase( { wholeString:true } ));
console.log('9 is ' + '9'.isUpperCase( { wholeString:true } ));
console.log('Aa is ' + 'Aa'.isUpperCase( { wholeString:true } ));
console.log('DDD 9 is ' + 'DDD 9'.isUpperCase( { wholeString:true } ));
console.log('DDD is ' + 'DDD'.isUpperCase( { wholeString:true } ));
console.log('Dll is ' + 'Dll'.isUpperCase( { wholeString:true } ));
console.log('ll is ' + 'll'.isUpperCase( { wholeString:true } ));

console.log('\r\nString.prototype.isUpperCase, non-whole string examples, will only string on a .charAt(n) basis. Defaults to the first character');
console.log(' DDD is ' + ' DDD'.isUpperCase( { wholeString:false } ));
console.log('9 is ' + '9'.isUpperCase( { wholeString:false } ));
console.log('Aa is ' + 'Aa'.isUpperCase( { wholeString:false } ));
console.log('DDD 9 is ' + 'DDD 9'.isUpperCase( { wholeString:false } ));
console.log('DDD is ' + 'DDD'.isUpperCase( { wholeString:false } ));
console.log('Dll is ' + 'Dll'.isUpperCase( { wholeString:false } ));
console.log('ll is ' + 'll'.isUpperCase( { wholeString:false } ));

console.log('\r\nString.prototype.isUpperCase, single character examples');
console.log('BLUE CURAÇAO'.charAt(9) + ' is ' + 'BLUE CURAÇAO'.charAt(9).isUpperCase( { wholeString:false } ));
console.log('9 is ' + '9'.isUpperCase( { wholeString:false } ));
console.log('_ is ' + '_'.isUpperCase( { wholeString:false } ));
console.log('A is ' + 'A'.isUpperCase( { wholeString:false } ));
console.log('d is ' + 'd'.isUpperCase( { wholeString:false } ));
console.log('E is ' + 'E'.isUpperCase( { wholeString:false } ));
console.log('À is ' + 'À'.isUpperCase( { wholeString:false } ));
console.log('É is ' + 'É'.isUpperCase( { wholeString:false } ));
console.log('Ñ is ' + 'Ñ'.isUpperCase( { wholeString:false } ));
console.log('ñ is ' + 'ñ'.isUpperCase( { wholeString:false } ));
console.log('Þ is ' + 'Þ'.isUpperCase( { wholeString:false } ));
console.log('Ͻ is ' + 'Ͻ'.isUpperCase( { wholeString:false } ));
console.log('Ͽ is ' + 'Ͽ'.isUpperCase( { wholeString:false } ));
console.log('Ά is ' + 'Ά'.isUpperCase( { wholeString:false } ));
console.log('Έ is ' + 'Έ'.isUpperCase( { wholeString:false } ));
console.log('ϴ is ' + 'ϴ'.isUpperCase( { wholeString:false } ));
console.log('Ϋ is ' + 'Ϋ'.isUpperCase( { wholeString:false } ));
console.log('Ϣ is ' + 'Ϣ'.isUpperCase( { wholeString:false } ));
console.log('Ϥ is ' + 'Ϥ'.isUpperCase( { wholeString:false } ));
console.log('Ϧ is ' + 'Ϧ'.isUpperCase( { wholeString:false } ));
console.log('Ϩ is ' + 'Ϩ'.isUpperCase( { wholeString:false } ));
console.log('Ϫ is ' + 'Ϫ'.isUpperCase( { wholeString:false } ));
console.log('Ϭ is ' + 'Ϭ'.isUpperCase( { wholeString:false } ));
console.log('Ϯ is ' + 'Ϯ'.isUpperCase( { wholeString:false } ));
console.log('Ϲ is ' + 'Ϲ'.isUpperCase( { wholeString:false } ));
console.log('Ϸ is ' + 'Ϸ'.isUpperCase( { wholeString:false } ));
console.log('Ϻ is ' + 'Ϻ'.isUpperCase( { wholeString:false } ));

Ste
источник
0
isUpperCaseCharExists = function(str){
    for(var i = 0; i < str.length; i++){
        var character = str.charAt(i);
        if(isNaN(character)){ // if number ignore
            var upCharacter = character.toUpperCase();
            var lowCharacter = character.toLowerCase();

            if(upCharacter != lowCharacter){ // if special char ignore
                if(character == upCharacter){
                    return true;
                }
            }
        }
    }

    return false;
}
Тарык Сейсери
источник
-1
<script type="text/javascript">
function check(){
    var str="AabczZ";
    for(var i=0;i<str.length;i++){
        var char=str.charCodeAt(i);
        if(char>=65 && char<=90){
            // char is in uppercase
        }else if(char>=97 && char<=122){
            // char is in lowercase
        }else{
            // special Char
        }
    }
}

Гаурав Шарма
источник