2016-10-19 5 views
-5

그래서 문자 (바람직하게는 길이가 1 인 문자열)를 받아들이는 isAlpha이라는 제목의 클래스에 대한 함수를 작성하려고합니다. 문자 인 경우 true를, 그렇지 않으면 false를 반환합니다.Javascript 문자가 true이면 true를 반환하는 함수?

나는 완전히 가야 할 곳이있다. 이 강사는 수업 시간에 준 예입니다

var isAlpha = function(ch){ 
    if (ch >= "A" && ch <= "z"){ 
     return true 
    } 

} 
alert(isAlpha(ch)) 

이 사람이 날 포인트 : 그래도 난 그와 함께 할 모르겠어요

var isAlpha = function(ch){ 

    //if ch is greater than or equal to "a" AND 
    // ch is less than or equal to "z" then it is alphabetic 

} 

var ltr ="a", digit =7; 
alert(isAlpha(ltr)); 
alert(isAlpha(digit)) 

, 내가 좋아하는 몇 가지 다른 일을 시도했습니다 이 기능을 시작하는 방법의 올바른 방향으로?

+0

그리고 무엇이 문제입니까? 지침을 정확히 따라야합니다. – zerkms

+0

일치 기능을 사용하는 정규식을 사용해보십시오. – Anson

+0

그러나 강사가 제공 한 지침을 따르지 못했습니다 ... "ch가"a "보다 크거나 같으면 프로그래밍 언어가 없으므로'if (ch> ="A "'... 분명히 –

답변

6

당신은 그냥 사용할 수있는 대소 문자를 구별하지 regular expression :

var isAlpha = function(ch){ 
    return /^[A-Z]$/i.test(ch); 
} 

당신이 비교보다는보다 적게에 대해 의견의 지침에 따라해야하는데, 당신은 입력이 있는지 확인하고자하는 경우 다음 길이가 1 인 문자열 :

var isAlpha = function(ch){ 
 
    return typeof ch === "string" && ch.length === 1 
 
     && (ch >= "a" && ch <= "z" || ch >= "A" && ch <= "Z"); 
 
} 
 

 
console.log(isAlpha("A"));  // true 
 
console.log(isAlpha("a"));  // true 
 
console.log(isAlpha("["));  // false 
 
console.log(isAlpha("1"));  // false 
 
console.log(isAlpha("ABC")); // false because it is more than one character

당신은 내가 거라고 알 수 있습니다 사용하지 마십시오. if 문을 사용하십시오. ch >= "a" && ch <= "z" || ch >= "A" && ch <= "Z" 표현식은 true 또는 false이므로 직접 값을 return으로 지정하면됩니다.

if (ch >= "A" && ch <= "z")으로 시도한 것은 대문자 "A"와 소문자 "z"사이의 문자 범위가 문자뿐만 아니라 "Z"와 "a"사이의 다른 문자를 포함하기 때문에 작동하지 않습니다. .

+1

그들은 비교 연산자와 조건부를 배웁니다. – zerkms

+0

우리는 정규 표현식에 대해 배웠습니다. 그래서 사용하지 않을 것인지 확신 할 수 없습니다.어쩌면 그 수업을 놓친 것일 수도 있습니다. 하지만 뭔가를 알아 낸 것입니다. – johntc121

+0

VAR 입력 = 프롬프트 VAR의 isalpha에 = 함수 (CH2) { \t 경우 ("문자를 입력") (CH2> = "A"&& CH <= "Z") { \t \t 참을 리턴 다른 \t} { 임 그것을 해결하기 위해 노력 있도록 \t \t 반환 거짓 \t} } 경고 (isalpha에 (입력)) – johntc121

3

먼저 문자열인지 확인한 다음 regex를 사용하십시오.

var isAlpha = function(ch){ 
    return typeof ch === "string" && ch.length === 1 && /[A-Za-z]/.test(ch); 
} 
+0

정규식에'^'와'$'를 포함하면 별도의 타입과 길이 검사가 필요하지 않습니다 (최소한, 나는 하나의 문자로 강제 변환 될 수있는 문자열이 아닌 값을 인식하지 못합니다. 편지). – nnnnnn

0

는 당신이 필요로하는 하나의 캐릭터의 경우 : {1,1} 여기에 문자가 최대 한 번에 한 번 이상 나타나고 의미

var isAlpha = function(ch){ 
    return /^[A-Za-z]{1,1}$/.test(ch) 
} 

통지. 한 문자 만 테스트하는 경우이 문자를 제거하면됩니다. 둘 이상의 문자를 테스트하려면 요구 사항에 따라 {n,m}으로 업데이트 할 수 있습니다.

+0

'{1,1}'은 중복됩니다. – nnnnnn

0

regex은 (는) 친구입니다.

var isAlpha = function(ch){ 

    return ch.match(/[0-9]/) != null 

} 
관련 문제