2013-02-22 2 views
0

이것은 간단한 질문 일 수 있습니다.
변수에 문자 또는 숫자가 포함되어 있으면 일치해야합니다. 다음은 결과를 제공하지 않습니다.한 글자 또는 숫자와 일치

var onechar = 1; 
if (onechar.match(/[0-9]/)) { 
    alert ("A digit"); 
} else if (onechar.match(/[a-z]/)){ 
    alert ("A letter"); 
} else { 
    alert ("Not a digit or a letter"); 
} 

감사

+2

'onechar'은 integ 어, 끈이 아니야. 이것은 jQuery와는 아무런 관련이 없습니다. – Blender

답변

0

그것은 검사의 종류에 대한 test를 사용하는 것이 더 효율적이고, 그것은 자동으로 인수에 toString를 호출합니다 대답은 "단일"문자 또는 숫자 조건을 해결합니다 ...

var onechar = "1"; // 1 is an integer, it wouldn't have a "match" function 
if (onechar.match(/^[0-9]$/)) { // add^and $ to mark the beginning and end of the string 
    alert ("A digit"); 
} else if (onechar.match(/^[a-z]$/i)){ // add /i for case insensitive match 
    alert ("A letter"); 
} else { 
    alert ("Not a digit or a letter"); 
} 
+0

이것은 나를 위해 매력처럼 작동합니다. 감사합니다 – user2099032

0

사용 toString() 메소드는 문자열로 변환 정규식을 사용합니다.

var onechar = 1; 
onechar = onechar.toString(); 
if (onechar.match(/[0-9]/)) { 
alert ("A digit"); 
} else if (onechar.match(/[a-z]/)){ 
    alert ("A letter"); 
} else { 
    alert ("Not a digit or a letter"); 
} 

감사합니다, 당신은 제대로하고있는

0

, 단지 toString() 함수를 추가하려고합니다. 이것보다 그렇지

var onechar = 1; 
onechar = onechar.toString(); 
if (onechar.match(/[0-9]/)) { 
    alert ("A digit"); 
} else if (onechar.match(/[a-z]/)){ 
    alert ("A letter"); 
} else { 
    alert ("Not a digit or a letter"); 
} 

, 당신은 또한 \d 대신 0-9 사용할 수 있습니다 같은 코드가 보인다.
무시 대소 문자가 사용되지 않으므로 [a-zA-Z]을 사용하여 문자를 일치시켜야합니다.

var onechar = 1; 
console.log(!!('' + onechar).match(/\d|\w/g)); 
>> true 

var onechar = 'foo'; 
console.log(!!('' + onechar).match(/\d|\w/g)); 
>> true 

var onechar = '+-)('; 
console.log(!!('' + onechar).match(/\d|\w/g)); 
>> false 
+0

좋습니다. 이것도 작동합니다. 감사합니다 – user2099032

+0

당신은 환영합니다 :) –

-1

+1

단어 문자 인'_'와 일치합니다. 그리고'g' 플래그가 필요 없습니다. – MikeM

0

를 다른 버젼 : 이것은 당신이 원하는 무엇

var onechar = 1; 
if (/\d/.test(onechar)) { 
    alert ("A digit"); 
} else if (/[a-z]/.test(onechar)) { 
    alert ("A letter"); 
} else { 
    alert ("Not a digit or a letter"); 
} 
+0

그것은 작동합니다. 설명 해줘서 고마워. 그러나 다음 구현은 onechar을 입력으로 받아들이는 것이고이 솔루션은이 확장을 수용하지 않습니다. – user2099032

관련 문제