2012-02-13 5 views
0

저는 정규 표현가가 아니므로 분명히 도움이 필요합니다.공백에 대한 정규 표현식

내가 원하는 것은 정규 표현식을 사용하여 "username"에 입력 한 사용자가 공백을 포함하지 않는지 확인하는 것입니다. 당신이 else if() 여전히 비어 나의 알 수 있듯이

if($('.username').val().length < 5) { 
    $(".user_account_validation").html("Too shorty.").css('background-color', 'red'); 
} else if() { 
} 

, 그리고 내가 내 검증을 배치 할 :

현재,이 구조를 가지고있다. 사용자 이름에 공백이 있으면 해당 오류 메시지를 반환합니다. 감사!

답변

6

어떤 사람들은 문제에 직면했을 때 "나는 알기 때문에 정규 표현식을 사용합니다."라고 생각합니다. 이제 그들은 두 가지 문제가 있습니다. - Jamie Zawinski

입력에 공백이있는 경우 당신이 알고 싶은 모든 경우, 다음 반환 -1 입력에 공백, 그렇지 않으면 첫 번째 공간 인덱스가없는 경우. 정규 표현식이 필요하면

$('.username').val().indexOf(' '); 

다음은 -1, 그렇지 않으면 첫 번째 공백의 인덱스를 반환합니다.

$('.username').val().search(/\s/); 
+1

이 질문은 제이미의 규칙의 완벽한 카운터 - 예이다 사용할 수 있습니다. 이것은 여기서 실제로 일치하는 언어가 실제로 규칙적이기 때문입니다. –

+0

@ NiklasB. 나는 그것이 정규 표현식을 사용하기에 알맞은 곳이라고 명시 할 것이고, 실제로 OP가 "유효한 입력을 확인하는 방법"을 묻는다면, 나는 그에게 정규 표현을 지적했을 것이다. 그러나 인용문은에 대한 무서운 반응이다. , "문제 X, 어떻게 그것을 위해 정규식을 사용합니까?" 이상적으로, Regex hammer로 두드리는 못을 모두 보지 않고 도구 상자의 모든 * 도구를 모두보아야합니다. – ironchefpython

4

정규식을 사용할 필요가 없습니다. $('.username').val().indexOf(' ') !== -1을 사용하여 공백이 있는지 테스트 할 수 있습니다.

복사 & 붙여 넣기를 통해 사용자가 탭을 입력하는 것을 방지하지는 않지만 어쨌든 서버 측에서 유효성 검사가 필요하므로 일반 사용자가 정상적으로 입력하지 않으면 검사가 충분하다는 점에 유의하십시오.

+2

탭, 줄 바꿈 등은 어떨까요? –

+1

사실, 정규식은 정말 적합 할 것입니다. (특히 물어 보았 기 때문에) 제안하지 않으시겠습니까? –

+0

복사하여 붙여 넣기를 사용하거나 텍스트 영역이 없으면 탭/줄 바꿈을 입력 할 수 없습니다. 하지만 모든 공백을 막으려면 regex *가 더 좋습니다. – ThiefMaster

3

당신은 ' '

else if ($('.username').val().indexOf(' ') === -1) { 
    //do stuff 
} 

에 대한 indexOf를 사용하지만 anywhite 공간과 일치해야하는 경우 다음이

else if ($('.uername').val().match(/\s/) { 
    //do stuff 
}