2014-10-02 6 views
0

우리는이 정규 표현식 [a-zA-Z0-9-]을 정의하고 입력을 제한하기 위해 onkeypress 이벤트를 구현했으며, 분명히 잘 작동하지만 스페인어 키보드를 사용할 때 áéííó ú ú 문자를 삽입 할 수 있습니다. 이 키는 2 개의 키를 눌러 생성되며 구현 된 솔루션은이 입력을 차단하지 않습니다. 오히려이 경우 키 누르기 이벤트를 사용해서는 안됩니다. 어느 누구도이 제한을 구현하기위한 더 나은 접근 방식에 대한 아이디어가 있습니까? 이 요구 사항은 [a-zA-Z0-9-] 이외의 문자 입력을 피하는 것이지만 문자 단위로자바 스크립트를 사용하여 스페인어 키보드에서 입력을 제한하는 방법은 무엇입니까?

답변

0

키 이벤트 핸들러 정규 표현식을 앵커링해야합니다. 시도하십시오 ^[a-zA-Z0-9-]+$

+0

내가 직면하고있는 문제는 : 데드락 트 키를 누를 때 키 누르기 이벤트가 트리거되지 않고 있음을 알 수 있습니다. 데드락 키를 누른 다음 생성 된 키가 눌린 것을 알 수 있습니다. keypress 이벤트가 이러한 경우에는 작동하지 않습니다. – jvacaq

+0

저는 주로 MFC를 사용하지만, 약간의 읽기 후에는 추측합니다. 모든 키에는 keydown/keyup 이벤트가 있어야하며 죽은 키도 있어야합니다. 이러한 이벤트를 처리해보고, "U + 0302"(Combining Circumflex Accent key)'당신이 말하는 죽은 열쇠를 찾으십시오. 발견되면 해당 키에 대해서만 해당 요소에 대해 preventDefault()를 호출합니다. – sln

+0

해결 방법이있을 수도 있습니다. http://stackoverflow.com/questions/10721499/differency-normal-characters-and-half-characters-on-keydown – sln