2012-04-16 3 views
3

텍스트, 공백 및 숫자 만 입력 할 수 있도록 입력 필드의 유효성을 검사하려고합니다.이 목적으로 Regex를 사용할 수 있습니까?

function checkVal() { 
var input = document.getElementById("input").value; 
if (input.match(/[a-zA-Z0-9]+$/) == null) { 
    alert("error"); 
    } 
} 

가 구체적으로 나는이 정말 중요하다 (밑줄이 필드 내에 있지 있는지 확인해야합니다 나는이 작업을 수행하는 가장 쉬운 방법은 이런 식으로 뭔가를 수행하여 정규 표현식을 사용하는 것이라고 생각). 이 테스트에서 제대로 작동하지 않는 것 같지만 잘못된 이유 때문에 정규 표현식을 사용하고 구문이 올바르지 않기 때문에 이것이 더 중요하다고 생각합니다.

해당 입력 상자에 "언더 스코어"문자를 제외 할 수있는 함수를 작성하는 것이 쉬울까요?

편집 : 조금 더 명확하게하기 위해 편지, 숫자 및 공백 만 허용하고 싶습니다.

+0

죄송 @sch 내가해야 편지, 숫자 및 공백, 이것을 반영하기 위해 질문을 업데이트 할 것입니다! – zik

+0

필자는 개인적으로'value.match (/.../) '대신'/.../. test (value)'를 사용할 것입니다. 귀하의 질문에 대한 유효성을 검사하거나 타이핑을 차단해야한다면, 유효성을 검사하십시오. 입력은 양식 필드 값을 입력하는 한 가지 방법 일뿐입니다. 적어도 유효성 검사를하면 언더 스코어가 허용되지 않는다는 사실을 알려주거나 알려줄 수 있습니다 (및 _why_). –

답변

6

문자열의 시작, ^ (및 공간)을 포함하는 것을 잊지 마십시오

그것은 공간에 대한 검사처럼 보이지 않는
/^[a-zA-Z0-9 ]+$/ 
+0

감사합니다. 거의 잊어 버렸습니다. – zik

0

, 또한 당신은 단지 문자열을 확인하고를 숫자 또는 문자로 끝납니다.

이 시도 :

function checkVal() { 
var input = document.getElementById("input").value; 
if (input.match(/^[ a-zA-Z0-9]+$/) == null) { 
    alert("error"); 
    } 
} 
2

시도를이 정규식 사용 :

편집 :

/^[a-zA-Z0-9 ]+$/ 

의 I는 incasesensitive입니다

/^[a-z0-9 ]+$/i 
+2

'i' 수정자를 사용하면'/^[a-z0-9] + $/i'가 충분합니다. – KooiInc

+0

아하 오른쪽, A-Z 삭제 잊어 버렸습니다. – WolvDev

관련 문제