如何使用JavaScripttestingstring中的字母是大写还是小写?
如何使用JavaScripttestingstring中的字母是大写还是小写?
如果字符或整个string是数字,josh和maleki的答案将返回大写和小写的真。 结果是一个错误的结果。 例如使用乔希
var character = '5'; if (character == character.toUpperCase()) { alert ('upper case true'); } if (character == character.toLowerCase()){ alert ('lower case true'); }
另一种方法是首先testing它是否为数字,否则testing它是否大写或小写的例子
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 numric'); }else{ if (character == character.toUpperCase()) { alert ('upper case true'); } if (character == character.toLowerCase()){ alert ('lower case true'); } } i++; }
if (character == character.toLowerCase()) { // The character is lowercase } else { // The character is uppercase }
如果字符是大写字母,则会logging为真,并在其他情况下logging为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); } }
你可以在这里testing它: http : //jsfiddle.net/Axfxz/ (使用Firebug或者)。
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); } }
这是小写:)。
与其他答案的问题是,一些字符如数字或标点符号也检查小写/大写时返回true。
我发现这个工作非常好:
function isLowerCase(str) { return str == str.toLowerCase() && str != str.toUpperCase(); }
这将适用于标点符号,数字和字母:
assert(isLowerCase("a")) assert(!isLowerCase("Ü")) assert(!isLowerCase("4")) assert(!isLowerCase("_"))
要检查一个字母,只需使用isLowerCase(str[charIndex])
调用它
您可以使用正则expression式testing和toUpperCase
方法:
String.prototype.charAtIsUpper = function (atpos){ var chr = this.charAt(atpos); return /[AZ]|[\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
也可以看看
function isUpperCase(myString) { return (myString == myString.toUpperCase()); } function isLowerCase(myString) { return (myString == myString.toLowerCase()); }
更具体地说是要问什么。 通过一个string和一个位置来检查。 非常接近乔希的,除了这个比较大的string。 本来会添加评论,但我还没有这个能力。
function isUpperCase(myString, pos) { return (myString.charAt(pos) == myString.charAt(pos).toUpperCase()); } function isLowerCase(myString, pos) { return (myString.charAt(pos) == myString.charAt(pos).toLowerCase()); }
您也可以使用正则expression式来显式检测大写的罗马字母字符。
isUpperCase = function(char) { return !!/[AZ]/.exec(char[0]); };
编辑:上面的函数是正确的ASCII /基本拉丁Unicode,这可能是你永远关心的所有。 以下版本还支持Latin-1 Supplement以及希腊语和Coptic Unicode块…如果您因为某种原因需要这些function。
isUpperCase = function(char) { return !!/[A-ZÀ-ÖØ-ÞΆΈ-ΏΑ-ΫϢϤϦϨϪϬϮϴϷϹϺϽ-Ͽ]/.exec(char[0]); };
如果您需要进一步支持(大写?),则此策略开始下降,因为某些块混合了大小写字符。
const isUpperCase = (string) => /^[AZ]*$/.test(string)
然后 :
isUpperCase('A') // true isUpperCase('a') // false
有一个非常简单的答案,其他人没有提到:
function isLowerCase(str) { return str !== str.toUpperCase(); }
如果str.toUpperCase()
不返回相同的str
,则必须是小写的。 要testing大写字母,请将其更改为str !== str.toLowererCase()
。
与其他答案不同,它可以在非字母字符上正常工作(返回false
),并且适用于其他字母,重音字符等。
这个问题的一个很好的答案应该是简洁,正确处理unicode,并处理空string和空值。
function isUpperCase(c) { return !!c && c != c.toLocaleLowerCase(); }
这种方法首先处理空string和空值,然后确保将给定string转换为小写字母会改变其相等性。 这可以确保string根据当前的本地大小写规则包含至less一个大写字母(并且不会返回没有大写字母的数字和其他字形的误报)。
原来的问题特别要求testing第一个字符。 为了保持你的代码简单明了,我将把string中的第一个字符与testing是否是大写分开。
你也可以使用这个,它会检查string的大小写
var s = "a" if(/[az]/.test(s)){ alert ('lower case true'); } if(/[AZ]/.test(s)) { alert ('upper case true'); }
你可以使用匹配方法和正则expression式来testing你的数组是否有大写或小写string,下面只是开始testing的基础
var array = ['a', 'b', 'c', 'A', 'B', 'C', '(', ')', '+', '-', '~', '*']; var character = array.join('') console.log(character) var test = function(search){ upperCase = search.match(/[AZ]/g) console.log(upperCase) lowerCase = search.match(/[az]/g) console.log(lowerCase) } test(character)
function isCapital(ch){ if(ch.charCodeAt() >= 65 && ch.charCodeAt() <= 90){ return true; } return false; }
假设一个string只被认为不是全部大写,如果至less有一个小写字母存在,这工作正常。 我知道这不像其他人试图做的那样简明扼要,但它起作用=)
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; }
一个我使用(注意这不会使“TestString”为“T est 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; }
如果你想testing一个string包含任何大写或小写字母,我有一个“傻”的方式。
public class checkString { String s; int lowerCase; int upperCase; char sArray[] = new char[s.length()]; for(int i = 0; i < s.length; i++){ sArray[i] = s.charAt(i); //put every characters in string into a char array } for(int j = 0; j < sArray.length; j++){ if(Character.isUpperCase(sArray[i])){ upperCase++; } else if(Character.isLowerCase(sArray[i])){ lowerCase++; } } if(lowerCase >= 1 && upperCase >=1){ //true// } else{ //false// } }
将string放入一个char数组中,并使用Character类。
我需要testing任何字符的string(包括空格,标记,数字,unicode字符…)。 因为空格,数字,标记…在大写和小写都是一样的,我想要find真正的大写字母,我这样做:
let countUpperCase = 0; let i = 0; while (i <= string.length) { const character = string.charAt(i); if (character === character.toUpperCase() && character !== character.toLowerCase()) { countUpperCase++; } i++; }
这是我最近做的:
1)检查char / string是否小写
s.toLowerCase() == s && s.toUpperCase() != s
2)检查是大写
s.toUpperCase() == s && s.toLowerCase() != s
涵盖了包含非字母字符和变音符号的情况。
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; }
-
定义一个函数checkCharType()。通过声明variablesreturnValue并初始化为字符“O”来表示它是一些其他的值。
-
U代表大写; L代表小写字母; N代表号码
-
使用charCodeAt()方法获取第一个字符的字符代码。
-
使用if语句来检查字符代码落在什么值的范围内。
-
如果它落在A和Z的字符代码之间,它的大写字母代码在a和z之间,它的小写字母。 等等。
-
“A” .charCode(0)
var myChar = new String(“A”); myChar.charCodeAt(0); “A”:数字代码“65”
- 检查string
<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 } } }
class check { public static void main() { String s="ALPHABET"; char c='a'; if(String.isUpperCase(s)) { //CODE// } if(Character.isUpperCase(c)) { //CODE// } } }