2012-11-20 2 views
0

이 포럼의 전문가의 도움이 필요합니다.공백, 탭 또는 텍스트 상자의 공백에 대한 RegExp

RegEx (javascript)를 사용하여 빈 칸이있는 입력란의 유효성을 검사하고 빈 탭이 있는지 확인하고 빈 입력란을 확인하고 싶습니다.

즉.

alert("Accepted") 
------------------------------ 
Jameswithsometext 
Billy Jean 

alert("Not accepted") 
------------------------------ 
- inadvertenly typed blank spaces 
- inadvertenly typed tabs 
- blank textbox 

답변

3

\s은 공백 문자와 일치해야합니다. 그래서 그것이 전부라면 문제가 있습니다.

var textbox = document.getElementById('mytextbox'); 
if (/^\s*$/.test(textbox.value)) { 
    alert('Come on man, seriously, what the hell are you doing?'); 
} else { 
    alert('Accepted'); 
} 

는 여기를 참조하십시오 : 문자열
  • \s 공백 문자
  • * 일치하는 문자의 수를 http://jsfiddle.net/68KzX/

    • ^ 시작 문자열의
    • $

    문자열이 0 자이거나 인 경우에만 공백 문자가 일치합니다. /^\S+$/ (공백이 아닌 적어도 하나의 문자)를 사용하여

  • +0

    정말 기발한 사람입니다. 나는 진정으로 내가 정규식을 알고 싶다. 그것의 매우 강력한! 너무 감사합니다. – user1451890

    +0

    @ user1451890 방금 정규 표현식 부분에 대해 설명했습니다. 편집을 참조하십시오. –

    +0

    비 공백이 발견되면 검색을 중지 할 수 있으므로 대신'if (!/\ S/.test (...))'를 사용하는 것이 훨씬 효율적입니다. – PointedEars

    1

    우리가 할 수있는,이 또한 입력 아무것도의 경우를 처리하는

    var p = prompt("Enter text", ""); 
    var rx = /^\S+$/; 
    if (rx.test(p) == false) 
        alert("Not accepted"); 
    else 
        alert("Accepted"); 
    

    참고.

    +0

    좋은 답변이 많이 있습니다. 감사합니다. :) – user1451890

    +0

    부울 반환 값을'=='와'false'를 비교하는 것은 불필요합니다. '=='(타입 변환)과'false'를 비교하는 것은 오류가 발생하기 쉽습니다. 'if (! rx.test (p))'를 찾고'if (rx.test (p)) '를 사용하고 브랜치의 순서를 반대로 할 수도 있습니다. – PointedEars