2011-07-28 5 views
1

이 집에서 만든 함수를 사용하여 텍스트 필드의 유효성을 검사하고 있지만 어떤 이유로 공백을 허용하지 않습니다. 이상하게 생각합니다. 수업 시간에 \ s가 있기 때문에 ...자바 정규식 공백 문제

function validateText(controlid, minlength, maxlength, required) { 
    var control = document.getElementById(controlid); 
    if (!required && control.value.length == 0) control.style.backgroundColor = "White"; 
    else { 
     var regex = new RegExp("^[a-zA-Z0-9\(\)\.\s_,:/-]{" + minlength + "," + maxlength + "}$", "g"); 
     if (!regex.test(control.value)) 
      control.style.backgroundColor = "#FFDDDD"; 
     else 
      control.style.backgroundColor = "White"; 
    } 
} 

공백을 입력하면 텍스트 상자가 빨간색으로 변하는 이유는 무엇입니까? 감사합니다 :)

+0

이 경우 최소 길이 및 최대 길이는 무엇입니까 –

+0

@Jesper - 데모를 만들었으며 정상적으로 작동합니다. 어떤 도움이 되길 바랍니다 ~ [http://jsfiddle.net/5ryx8/](http://jsfiddle.net/5ryx8/) – Monday

답변

3

나는 당신이 \s을 수업에 넣으려고하기 때문에 그것이라고 생각합니다. 수업 (예 : []) 안에서 \s은 간단히 나쁘게 이스케이프 된 "s"입니다. 리터럴 공간을 사용하거나 ^([...]|\s){을 사용하십시오.

+0

예, \ s를 공백으로 바꾸면 작동합니다. 여기서 jsFiddle : http://jsfiddle.net/jfriend00/Ne6zC/에서 작동하는지 확인할 수 있습니다. – jfriend00

+0

감사합니다. 이제 괜찮아. – Jesper