2011-08-24 7 views
0

하나의 목록에서 일부 문자를 허용하고 다른 목록에서 다른 문자를 금지하고 싶습니다. 정규 표현식에서 특정 문자를 허용 및 금지 하시겠습니까?

는이 허용 :

[^[email protected]#$%^&*_+] 

이 실패 :
왜이 실패하는

[A-Za-z0-9 ,.)(] 

은이를 방지? END_LINK하면 관심있는가에 대한 테스트 어떤

(function($) { 
    $.fn.extend({ 
     standardOnly: function() { 
      return this.each(function() { 
       return $(this).keypress(function(e, text) { 

        var keynum; 
        var keychar; 
        var regEx; 
        var allowedKeyNums = [8, 9, 35, 36, 46]; // Backspace, Tab, End, Home, (Delete & period) 

        if (window.event) // IE 
         keynum = e.keyCode; 
        else if (e.which) // Netscape/Firefox/Opera 
         keynum = e.which; 
        else 
         keynum = e.keyCode 

        keychar = String.fromCharCode(keynum); 
        regEx = /[^#$]/ // Undesirable characters 

        // Test for keynum values that collide with undesirable characters 
        if ($.inArray(keynum, allowedKeyNums) > -1) 
         return regEx.test(keychar); 

        regEx = /[A-Za-z0-9 ,.)(][^[email protected]#$%^&*_+]/ 
        return regEx.test(keychar); 
       }); 
      }); 
     } 
    }); 
})(jQuery); 

답변

4

는 잘못된 문자 다음에 유효한 문자 입니다. 허용 된 문자를 찾으십시오. 실패하면 끝났어, 그렇지?

+0

하나님 ... 나는 바보입니다 –

+0

그는'/^[allowed chars] + $ /'표현식을 앵커 할 때만 가능합니다. –

+0

@Fix :이 경우에는 키 누르기가 항상 한 번에 한 문자 씩 호출됩니다. –

관련 문제