如何使用JavaScript测试字符串中的字母是大写还是小写?
当前回答
在现代浏览器中,您可以使用regexp和unicode属性测试。
/\p{Lu}/u.test("A") // is true
/\p{Lu}/u.test("Å") // is true
/\p{Lu}/u.test("a1å") // is false
更多信息:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Unicode_Property_Escapes
一般类别列表如下:
https://unicode.org/reports/tr18/#General_Category_Property
其他回答
只需检查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
}
还可以使用正则表达式显式地检测大写罗马字母字符。
isUpperCase = function(char) {
return !!/[A-Z]/.exec(char[0]);
};
EDIT:上面的函数对ASCII/基本拉丁Unicode是正确的,这可能是你所关心的。以下版本还支持拉丁-1补充和希腊和科普特Unicode块…以防你因为什么原因需要它。
isUpperCase = function(char) {
return !!/[A-ZÀ-ÖØ-ÞΆΈ-ΏΑ-ΫϢϤϦϨϪϬϮϴϷϹϺϽ-Ͽ]/.exec(char[0]);
};
如果您需要进一步的支持(Ѭ是大写的吗?),这个策略就会失效,因为有些块会混合大小写字符。
我相信这是最简单的解决办法。你可以在输入字段中使用onchange处理程序。进行验证
const isValid = e.target.value === e.target.value.toLowerCase()
if (isValid) {
//Do something
} else {
//Do something
}
const isUpperCase = (string) => /^[A-Z]*$/.test(string)
然后:
isUpperCase('A') // true
isUpperCase('a') // false
if (character == character.toLowerCase())
{
// The character is lowercase
}
else
{
// The character is uppercase
}