タイトル通り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