2016-07-13 2 views
0

텍스트의 경우에만 RegEx 패턴을 만드는 방법은 무엇입니까? 몇 가지 코드가 있지만 왜 작동하지 않는지 이해할 수 없습니다. 주석에서 언급 한 바와 같이텍스트에만 regExp 패턴을 만드는 방법

document.myform.firstname.onchange = function() { 
    var pattern = new RegExp("\\a-z+", "i"); 
    var isValid = this.value.search(pattern) >= 0; 

    if (!(isValid)) { 
     alert("error"); 
    } else { 
     alert("fine"); 
    } 
}; 
+2

당신은 아마 의미하는'/ [A-Z] +/i'. 어떻게 그걸'\\ a-z'와 혼동 했습니까? – Xufox

+0

document.myform.firstname.onchange = function() { var 패턴 = 새 RegExp ("\\ [a-z] +", "i"); var isValid = this.value.search (pattern)> = 0; if (! (isValid)) { alert ("error"); } else { 알림 ("괜찮음"); } }; –

+1

질문에 [edit] 추가 정보를 입력하십시오. 형식화되지 않은 코드는 주석에 넣지 마십시오. – Xufox

답변

1

당신의 영업 이익 주어진 정규식 문자열 \a-z 일치합니다, 당신은 /[a-z]+/i을 사용해야하므로 코드 것이다 :

var pattern = new RegExp("\[a-z]+", "i"); 

대신 :

var pattern = new RegExp("\\a-z+", "i"); 

호프 이것은 도움이됩니다.

//Old regex 
 
var pattern = new RegExp("\\a-z+", "i"); 
 
console.log('11\a-z11'.search(pattern)>=0); //true 
 
console.log('1111'.search(pattern)>=0); //false 
 
console.log('11a11'.search(pattern)>=0); //false 
 

 
console.log('----------'); 
 

 
//New regex 
 
var pattern = new RegExp("\[a-z]+", "i"); 
 
console.log('1111'.search(pattern)>=0); //false 
 
console.log('11a11'.search(pattern)>=0); //true

관련 문제