문자열의 문자가 대문자인지 소문자인지 JavaScript를 사용하여 테스트하려면 어떻게 해야 합니까?
문자열의 문자가 대문자인지 소문자인지 JavaScript를 사용하여 테스트하려면 어떻게 해야 합니까?
josh와 maleki의 답은 문자 또는 문자열 전체가 숫자일 경우 대소문자 모두 true로 반환되며 결과는 잘못된 결과입니다.josh를 사용한 예
var character = '5';
if (character == character.toUpperCase()) {
alert ('upper case true');
}
if (character == character.toLowerCase()){
alert ('lower case true');
}
다른 방법은 숫자일 경우 먼저 검정하고, 대문자 또는 소문자일 경우 검정하는 것입니다.
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++;
}
if (character == character.toLowerCase())
{
// The character is lowercase
}
else
{
// The character is uppercase
}
다른 답변의 문제는 숫자나 구두점 등의 일부 문자도 소문자/대문자를 선택하면 true가 반환된다는 것입니다.
나는 이것이 매우 효과적이라는 것을 알았다.
function isLowerCase(str)
{
return str == str.toLowerCase() && str != str.toUpperCase();
}
구두점, 숫자 및 문자에 적용됩니다.
assert(isLowerCase("a"))
assert(!isLowerCase("Ü"))
assert(!isLowerCase("4"))
assert(!isLowerCase("_"))
하나의 문자를 확인하려면 다음 방법으로 호출하십시오.isLowerCase(str[charIndex])
const isUpperCase = (string) => /^[A-Z]*$/.test(string)
다음에, 다음과 같이 입력합니다.
isUpperCase('A') // true
isUpperCase('a') // false
문자가 대문자인 경우 true로 기록되며, 그 이외의 경우 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);
}
}
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);
}
}
이것은 소문자:)의 경우입니다.
정규 표현 테스트나toUpperCase
방법:
String.prototype.charAtIsUpper = function (atpos){
var chr = this.charAt(atpos);
return /[A-Z]|[\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());
}
function isCapital(ch){
return ch.charCodeAt() >= 65 && ch.charCodeAt() <= 90;
}
더 구체적으로 무엇을 요구하는지.문자열과 확인할 위치를 전달합니다.조쉬의 것과 매우 가깝지만, 이건 더 큰 끈을 비교한다는 점만 빼면요.댓글로 달았으면 좋았을 텐데 저는 아직 그런 능력이 없어요.
function isUpperCase(myString, pos) {
return (myString.charAt(pos) == myString.charAt(pos).toUpperCase());
}
function isLowerCase(myString, pos) {
return (myString.charAt(pos) == myString.charAt(pos).toLowerCase());
}
이 질문에 대한 적절한 답변은 간결하고 Unicode를 올바르게 처리하며 빈 문자열과 null을 처리해야 합니다.
function isUpperCase(c) {
return !!c && c != c.toLocaleLowerCase();
}
이 방법에서는 우선 빈 문자열과 늘을 처리한 후 지정된 문자열을 소문자로 변환하면 동등성이 변경됩니다.이렇게 하면 현지의 대문자화 규칙에 따라 문자열에 적어도 하나의 대문자가 포함되어 있습니다(또한 대문자화가 없는 숫자 및 기타 문자에 대해서는 잘못된 긍정이 반환되지 않습니다).
원래 질문은 첫 번째 캐릭터를 테스트하는 것에 대해 구체적으로 질문했습니다.코드를 심플하고 명확하게 하기 위해 첫 번째 문자를 문자열에서 분리하여 대문자로 구분합니다.
정규식을 사용하여 대문자 로마자 알파벳 문자를 명시적으로 검출할 수도 있습니다.
isUpperCase = function(char) {
return !!/[A-Z]/.exec(char[0]);
};
편집: 위의 기능은 ASCII/Basic Latin Unicode(ASCII/Basic Latin Unicode)에 적합합니다.이것만 신경쓸 수 있습니다.다음 버전에서는 Latin-1 Supplement와 그리스어 및 콥트어 유니코드 블록도 지원됩니다.어떤 이유로 그게 필요할지도 모르니까
isUpperCase = function(char) {
return !!/[A-ZÀ-ÖØ-ÞΆΈ-ΏΑ-ΫϢϤϦϨϪϬϮϴϷϹϺϽ-Ͽ]/.exec(char[0]);
};
일부 블록은 대문자와 소문자를 혼재시키기 때문에 추가 지원이 필요한 경우(''는 대문자입니까?') 이 전략은 중단되기 시작합니다.
다른 누구도 언급하지 않은 매우 간단한 답이 있습니다.
function isLowerCase(str) {
return str !== str.toUpperCase();
}
ifstr.toUpperCase()
것을 하지 않다str
, , , , , , , , , , , , , , , , , , , , , , , , , .는 '대소문자를 시험하다'로.str !== str.toLowererCase()
.
답안과는 이 아닌 문자에서는 올바르게 동작합니다.false
기타 알파벳, 악센트 문자 등에 사용할 수 있습니다.
이것은 간단한 정규식을 사용한 간단하고 읽기 쉬운 솔루션입니다.
// Get specific char in string
const char = string.charAt(index);
const isLowerCaseLetter = (/[a-z]/.test(char));
const isUpperCaseLetter = (/[A-Z]/.test(char));
이 명령어를 사용할 수도 있습니다.문자열에서 소문자와 소문자가 체크됩니다.
var s = "a"
if(/[a-z]/.test(s)){
alert ('lower case true');
}
if(/[A-Z]/.test(s)) {
alert ('upper case true');
}
은 정규 3진 연산자를 입니다..test()
스트링 메서드
정규 표현식의 자세한 내용과 문자열 테스트 방법(찾기 쉬움)은 Google에 맡기겠습니다만, 여기서 변수를 테스트합니다.
/[a-z]/i.test(your-character-here)
그러면 정규 표현에서 설정한 문자와 일치하는지 여부에 따라 FALSE의 TRUE가 반환됩니다. 표현식은 를 확인합니다./[a-z]/
덕분에 그들의 경우와 상관없이i
기본 테스트는 다음과 같습니다.
var theAnswer = "";
if (/[a-z]/i.test(your-character-here)) {
theAnswer = "It's a letter."
}
이제 대문자인지 소문자인지 판별해야 합니다.그래서, 만약 우리가 그것을 제거한다면i
a-z로 하다 또 ...if
의 else
의 첫 번째 리리 our our our our의if
스테이트먼트, A-Z를 사용하여 대문자 테스트도 할 수 있습니다.다음과 같이 합니다.
var theAnswer = "";
if (/[a-z]/.test(your-character-here)) {
theAnswer = "It's a lower case letter."
} else if (/[A-Z]/.test(your-character-here)) {
theAnswer = "It's an upper case letter.";
}
그리고 만약 편지가 아닌 경우, 우리는 마지막 다른 문구를 추가할 수 있습니다.
var theAnswer = "";
if (/[a-z]/.test(your-character-here)) {
theAnswer = "It's a lower case letter."
} else if (/[A-Z]/.test(your-character-here)) {
theAnswer = "It's an upper case letter.";
} else {
theAnswer = "It's not a letter."
}
위의 코드는 유효합니다.대신를 사용하여 '삼원 연산자'를 할 수 있습니다.if-else
상기의 스테이트먼트를 참조해 주세요.일 뿐입니다.if-else
구문은 간단합니다.
(statement-to-be-evaluated) ? (code-if-true) : (code-if-false)
그리고 이것들은 서로 중첩될 수도 있습니다.따라서 함수는 다음과 같습니다.
var theAnswer = "";
function whichCase(theLetter) {
theAnswer = /[a-z]/.test(theLetter) ? "It's lower case." : "";
theAnswer = /[A-Z]/.test(theLetter) ? "It's upper case." : "";
return(theAnswer);
}
위의 코드는 좋아 보이지만 잘 작동하지 않습니다. 왜냐하면 우리의 캐릭터가 소문자일 경우,theAnswer
대문자 테스트 시 " 로 설정됩니다.따라서 네스트 하겠습니다.
var theAnswer = "";
function whichCase(theLetter) {
theAnswer = /[a-z]/.test(theLetter) ? "It's lower case." : (/[A-Z]/.test(theLetter) ? "It's upper case." : "It's not a letter.");
return(theAnswer);
}
아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아,theAnswer
이렇게 , 이렇게 쓰도록 .let
★★★★★★★★★★★★★★★★★」const
var
( ( ( ( ( ( ( ( ( ( ( 。이러한 변경을 실시하면, 다음과 같이 됩니다.
function whichCase(theLetter) {
return(/[A-Z]/.test(theLetter) ? "It's upper case." : (/[a-z]/.test(theLetter) ? "It's lower case." : "It's not a letter."));
}
그리고 우리는 우아하고 간결한 코드 조각으로 끝납니다.;)
선택한 답변에 대한 제 의견을 보십시오.ASCII 테이블로 제한하거나 실제 문자 리터럴을 사용하는 다른 솔루션은 유니코드 및 대소문자가 있는 다른 수백 개의 문자를 완전히 무시합니다.
이 코드는 case Group 변수를 다음과 같이 설정합니다.
- 대문자의 경우 1
- -1(소문자용)
0(대문자와 소문자가 0인 경우
var caseGroup = (character.toLowerCase() == character.toUpperCase() ? 0 : (character == character.toUpperCase() ? 1 : -1));
이걸 이렇게 구우면...
function determineCase(character) {
return (character.toLowerCase() == character.toUpperCase() ? 0 : (character == character.toUpperCase() ? 1 : -1));
}
function isUpper(character) {
return determineCase(character) == 1;
}
function isLower(character) {
return determineCase(character) == -1;
}
function hasCase(character) {
return determineCase(character) != 0;
}
function solution(s) {
var c = s[0];
if (c == c.toUpperCase() && !(c >= '0' && c <= '9') &&(c >='A' && c <= 'Z')) {
return 'upper';
} else if (c == c.toLowerCase() && !(c >= '0' && c <= '9') &&(c >='a' && c <= 'z')){
return 'lower';
} else if (c >= '0' && c <= '9'){
return 'digit'
} else {
return 'other'
}
}
var str1= (solution('A')) // upper
var str2 = solution('b') // lower
var str3 = solution('1') // digit
var str4 = solution('_') // other
console.log(`${str1} ${str2} ${str3} ${str4}`)
이것이 가장 쉬운 해결책이라고 생각합니다.입력 필드 ..에서 변경 핸들러를 사용하여 유효성 검사를 수행할 수 있습니다.
const isValid = e.target.value === e.target.value.toLowerCase()
if (isValid) {
//Do something
} else {
//Do something
}
최신 브라우저에서는 regexp 및 unicode 속성 테스트를 사용할 수 있습니다.
/\p{Lu}/u.test("A") // is true
/\p{Lu}/u.test("Å") // is true
/\p{Lu}/u.test("a1å") // is false
자세한 내용은 이쪽:
일반 카테고리 목록:
match 메서드와 regex를 사용하여 어레이에 대문자와 소문자가 포함되어 있는지 테스트할 수 있습니다.다음은 테스트를 시작하기 위한 기본적인 기초입니다.
var array = ['a', 'b', 'c', 'A', 'B', 'C', '(', ')', '+', '-', '~', '*'];
var character = array.join('')
console.log(character)
var test = function(search){
upperCase = search.match(/[A-Z]/g)
console.log(upperCase)
lowerCase = search.match(/[a-z]/g)
console.log(lowerCase)
}
test(character)
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;
}
Function check Char Type()을 정의합니다.변수 returnValue를 선언하고 문자 "O"로 초기화하여 다른 값을 나타냅니다.
U는 대문자, L은 소문자, N은 숫자
charCodeAt() 메서드를 사용하여 첫 번째 문자의 문자 코드를 가져옵니다.
if Statement 를 사용하여 문자 코드가 어떤 값의 범위에 속하는지 확인합니다.
A와 Z의 문자 코드 사이에 있는 경우 대문자, a와 z 사이의 문자 코드, 소문자.기타 등등.
"A".charCode(0)
var myChar = new String("A"); myChar.charCodeAt(0); "A" : 번호 코드 "65"
- 문자열 확인
그러면 첫 번째 문자뿐만 아니라 전체 문자열이 검사됩니다.여기 계신 모든 분들께 나눠드리고 싶어서요.
다음은 정규 표현을 사용하여 문자열 문자에 대해 테스트하는 함수입니다.문자가 대문자(A-Z)인 경우 true를 반환합니다.다음으로 true/false 어레이를 단일 값으로 줄입니다.문자열 길이와 같으면 모든 문자가 regex 테스트를 통과했음을 의미합니다.즉, 문자열은 대문자입니다.그렇지 않은 경우 문자열은 소문자로 표시됩니다.
const isUpperCase = (str) => {
let result = str
.split('')
.map(letter => /[A-Z]/.test(letter))
.reduce((a, b) => a + b);
return result === str.length;
}
console.log(isUpperCase('123')); // false
console.log('123' === '123'.toUpperCase()); // true
function checkCase(c){
var u = c.toUpperCase();
return (c.toLowerCase() === u ? -1 : (c === u ? 1 : 0));
};
주요 답변에 대한 Sonic Beard의 코멘트를 바탕으로 합니다.결과에서 논리를 변경했습니다.
0: 소문자
1: 대문자
-1: 둘 다
문자열이 모두 대문자는 아닌 것으로 간주되는 경우는 적어도1개의 소문자가 존재하는 경우로, 정상적으로 동작합니다.다른 사람들이 시도했던 것처럼 간결하고 간결하지는 않지만, 효과가 있을까요 =)
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;
}
공백, 마크, 숫자, 유니코드 문자 등 임의의 문자열에 대해 테스트해야 합니다.왜냐하면 흰 공간, 숫자, 표시...대소문자와 소문자 모두 동일하며 실제 대소문자를 찾으려면 다음을 수행합니다.
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) 자/문 a 합니다.s
소문자( )
s.toLowerCase() == s && s.toUpperCase() != s
2) ★★s
대문자입니다.
s.toUpperCase() == s && s.toLowerCase() != s
이하를 커버합니다.s
에는 알파벳이 아닌 문자와 분음 문자가 포함되어 있습니다.
이 질문은 몇 번인가 명확하게 답변이 되었지만, 지금까지 답변에서 본 적이 없기 때문에 제 해결책을 공유하려고 합니다.
var lower_case = function(letter){
lowers = "abcdefghijklmnopqrstuvwxyz";
return letter === letter.toLowerCase() && lowers.indexOf(letter) >= 0
};
var upper_case = function(letter){
uppers = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
return letter === letter.toUpperCase() && uppers.indexOf(letter) >= 0
};
2¢
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
}
또 다른 방법은 캐릭터를 빈 객체와 비교하는 것입니다.왜 동작하는지는 모르겠지만 동작합니다.
for (let i = 1; i <= 26; i++) {
const letter = (i + 9).toString(36).toUpperCase();
console.log('letter', letter, 'is upper', letter<{}); // returns true
}
for (let i = 1; i <= 26; i++) {
const letter = (i + 9).toString(36);
console.log('letter', letter, 'is upper', letter<{}); // returns false
}
즉, 함수는 다음과 같습니다.
function charIsUpper(character) {
return character<{};
}
편집: 액센트와 분음 부호에서는 동작하지 않기 때문에 삭제할 수 있습니다.
function charIsUpper(character) {
return character
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '')<{};
}
사용하고 있는 것(「TestString」이 「TestString」또는 「TestString」으로 되어 있지 않은 것에 주의해 주세요.
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;
}
언급URL : https://stackoverflow.com/questions/1027224/how-can-i-test-if-a-letter-in-a-string-is-uppercase-or-lowercase-using-javascrip
'programing' 카테고리의 다른 글
어떤 사용자 php가 실행 중인지 확인하는 방법 (0) | 2022.09.26 |
---|---|
[key1,val1,key2,val2]를 딕트로 변환하시겠습니까? (0) | 2022.09.19 |
Composer create-project와 함께 특정 larabel 버전 설치 (0) | 2022.09.19 |
jUnit의 다중 RunWith 문 (0) | 2022.09.19 |
IP 주소로 ping을 실행할 수 있는데 InetAddress.isReachable이 false를 반환하는 이유는 무엇입니까? (0) | 2022.09.19 |