Wie kann ich mit JavaScript testen, ob ein Buchstabe in einer Zeichenkette groß oder klein geschrieben wird?
Antworten
Zu viele Anzeigen?Die Antwort von josh und maleki gibt sowohl bei Groß- als auch bei Kleinbuchstaben true zurück, wenn das Zeichen oder die gesamte Zeichenkette numerisch ist, so dass das Ergebnis falsch ist. Beispiel mit josh
var character = '5';
if (character == character.toUpperCase()) {
alert ('upper case true');
}
if (character == character.toLowerCase()){
alert ('lower case true');
}
eine andere Möglichkeit besteht darin, zuerst zu prüfen, ob es sich um einen numerischen Wert handelt, und dann zu prüfen, ob es sich um Groß- oder Kleinschreibung handelt Beispiel
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 numeric');
}else{
if (character == character.toUpperCase()) {
alert ('upper case true');
}
if (character == character.toLowerCase()){
alert ('lower case true');
}
}
i++;
}
Das Problem bei den anderen Antworten ist, dass einige Zeichen wie Zahlen oder Satzzeichen auch bei der Prüfung auf Klein-/Großschreibung true zurückgeben.
Ich habe festgestellt, dass dies sehr gut funktioniert:
function isLowerCase(str)
{
return str == str.toLowerCase() && str != str.toUpperCase();
}
Dies gilt für Satzzeichen, Zahlen und Buchstaben:
assert(isLowerCase("a"))
assert(!isLowerCase("Ü"))
assert(!isLowerCase("4"))
assert(!isLowerCase("_"))
Um einen Buchstaben zu prüfen, rufen Sie ihn einfach mit isLowerCase(str[charIndex])
Damit wird true protokolliert, wenn das Zeichen ein Großbuchstabe ist, und false in jedem anderen Fall:
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);
}
}
Sie können es hier testen: http://jsfiddle.net/Axfxz/ (Firebug oder ähnliches verwenden).
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);
}
}
und dies ist für Kleinbuchstaben:).
- See previous answers
- Weitere Antworten anzeigen