2014-11-11 1 views
0

자바 스크립트에서 다음 함수를 사용하고 있으며 일부 문자 (악센트 및 특수 문자)를 제한합니다. 사용자가 다음과 같은 문자를 입력 할 수겠습니까 :몇 문자에 대해서만 정규 표현식 (정규식)

á é í ó ú Á É Í Ó Ú : - _ ç Ç ã ~ 전자 õ Ã Õ Â Ê Ô

하지만 내가 뭘에 성공 아니에요 도와 드릴까요?

참고 : 아래의 코드는 내가 현재 어떻게 문자

정규식 내 기능을 인용 할 수있는 정규식을 만드는 아무 생각이 무엇을 :

$('input').keyup(function() { 
    var $th = $(this); 
    $th.val($th.val().replace(/[^a-zA-Z0-9 ]/g, function(str) {          
     return ''; 
    }); 
})); 

답변

1

자바 스크립트가 직접 유니 코드 프로그래밍을 지원하는 경우, []가에 문자의 하나을 선택하기 때문에 단지

/[áéíóúÁÉÍÓÚ:-_çÇã~eõÃÕÂÊÔ]/ 

을 사용할 수 있어야합니다 ers (또는 문자 범위) 내에서.

+1

하는 것으로'~'와'e'는 아마 당신이 원하지 않는 무엇인가. –

+0

예, 물론 =) –

2

특정 문자 (unicode-table.com에서 찾을 수 있음)에 유니 코드 16 진수 값을 사용하고 문자 클래스 내에 포함하십시오. 따라서 예를 들어, 당신은 당신의 표현을 수정하는 것 éá을 허용하기 :

/[^a-zA-Z0-9 \u00E1\u00E9]/ 
+0

내 대답과 같이 JavaScript가 유니 코드를 지원하지 않습니까? 그렇지 않으면 삭제해야합니다. (JS는 몹시 익숙한 언어가 아닙니다.) –

+0

두 방법 모두 작동합니다. – tenub

+0

오, 알겠습니다. 감사 :) –