Help us understand the problem. What is going on with this article?

JavaScript 文字・文字列が大文字(小文字)かどうか判定する方法いろいろ

タイトル通りJavaScriptで文字・文字列の大文字小文字を調べる方法を色々。

正規表現で

//正規表現で 文字列すべてが大文字かどうか
const isUpperCase = c => {
  return /^[A-Z]+$/g.test(c)
}
console.log(isUpperCase('AA')) // true
console.log(isUpperCase('aa')) // false
console.log(isUpperCase('Aa')) // false
//string.matchを使った正規表現で文字列がすべてが大文字ならtrue
const isUpperCase = str => {
  let arr = str.match(/^[A-Z]+$/)
  return arr ? true : false
}
console.log('isUpperCase', isUpperCase('ABC')) // true
console.log('isUpperCase', isUpperCase('abc')) // false
console.log('isUpperCase', isUpperCase('Abc')) // false

String.toUpperCaseして比較する

//String.toUpperCase/String.toLowerCase を使って
const isUpperCase = str => {
  return str === str.toUpperCase() ? true : false
}
console.log(isUpperCase('STR')) // true
console.log(isUpperCase('stR')) // false
console.log(isUpperCase('str')) // false

UTF-16 コードを使って判定

//AからZのcharCodeAtの値の範囲から
const isUpperCaseCharCode = c => {
  const codeA = 'A'.charCodeAt()
  const codeZ = 'Z'.charCodeAt()
  const code = c.charCodeAt()
  return codeA <= code && code <= codeZ
}
console.log(isUpperCaseCharCode('A')) // true
console.log(isUpperCaseCharCode('B')) // true
console.log(isUpperCaseCharCode('Z')) // true

console.log(isUpperCaseCharCode('a')) // false
console.log(isUpperCaseCharCode('b')) // false
console.log(isUpperCaseCharCode('z')) // false


//上記を利用して配列のいずれかに大文字が含まれるか
console.log(['A', 'B', 'c'].some(isUpperCaseCharCode)) //true

//配列のすべてが大文字かどうか
console.log(['A', 'B', 'c'].every(isUpperCaseCharCode)) //false

大文字の文字列と照らし合わせて

//ABC...Zの文字列に合致するか
const STR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
const isUpperCaseABC = c => {
  for (let i = 0; i < STR.length; i++) {
    if (c === STR[i]) {
      return true
    }
  }
  return false
}
console.log(isUpperCaseABC('A')) // true
console.log(isUpperCaseABC('a')) // false

//配列にして
const isUpperCaseInArray = c => {
  let arr = STR.split('')
  return arr.indexOf(c) >= 0 ? true : false
}
console.log(isUpperCaseInArray('A')) // true
console.log(isUpperCaseInArray('a')) // false
dskymd
JavaScript, Vue.js, Nuxt.js書いてます。
https://dskymd.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away