https://leetcode-cn.com/problems/detect-capital/
描述
给定一个单词,你需要判断单词的大写使用是否正确。
我们定义,在以下情况时,单词的大写用法是正确的:
- 全部字母都是大写,比如"USA"。
- 单词中所有字母都不是大写,比如"leetcode"。
- 如果单词不只含有一个字母,只有首字母大写, 比如 “Google”。
否则,我们定义这个单词没有正确使用大写字母。
示例 1:
输入: "USA"
输出: True
示例 2:
输入: "FlaG"
输出: False
分析
将A-Z用replace替换为空字符串,接着判断。
- 如果新的字符串为空,返回true
- 如果新的字符串等于原本的字符串,返回true
- 如果原本字符串的第一个字符拼接上新的字符串等于原本字符串,返回true
- 其余情况返回false
就能得到如下代码
var detectCapitalUse = function(word) {
let newWord = word.replace(/[A-Z]/g, '')
return newWord === word || newWord === '' || word[0] + newWord === word
};
最简单的方式就是用正则来做
var detectCapitalUse = function(word) {
return /^[A-Z]+$|(^[A-Z]?[a-z]+)$/.test(word)
};
除此之外还可以通过遍历,判断charCode来做,这里就不展示了。