2009-04-28 2 views
2

이 솔루션은 C#/.net에서 찾을 수 있지만 일반 웹 html에서는 찾을 수 없습니다. 이미 답변이 있으면 알려주세요. 나는 질문을 닫을 것입니다.자바 정규식 전용 텍스트 상자

주어진 정규 표현식 (예 : [a-zA-Z0-9])을 기반으로 특정 문자 (예 : 영숫자) 만 허용 할 수있는 텍스트 상자를 만드는 방법은 무엇입니까? 따라서 사용자가 포함 된 다른 것을 입력하려고하면 제거되거나 허용되지 않습니다.

<input type="text" class="alphanumericOnly"> 
+0

웹에 이미 존재하는 솔루션을 찾으려고 노력 했습니까? 나는 그들이 밖에 있고, 타이 픽스트가되고 싶지 않으므로, Google에 가서 세부 사항에 대한 질문이있을 때 여기로 돌아 오십시오 - 코드를 작성하기 위해 저에게 돈을 지불하고 싶지 않으면. –

+1

여기 있습니다 : http://www.xploredotnet.com/2007/09/restrict-alphabet-input-in-textbox_20.html –

+1

맞아요, 그럴 수도 있었 겠지만 대답을 위해 SO를 사용하면 생성 할 가능성도 있습니다. 토론, 새로운 아이디어 등을 제공합니다. 귀하의 도움에 감사드립니다. – SeanDowney

답변

4

기본 기능이 될 것입니다 :

string = string.replace(/[^a-zA-Z0-9]/g, '') 

이것은 [a-zA-Z0-9]에 의해 설명되지 않은 모든 문자를 대체 할 것이다. (당신이 클래스 힌트를 사용)이 클래스 alphanumericOnly와 모든 input 요소에이 동작을 할당

<input type="text" class="alphanumericOnly" onkeyup="this.value=this.value.replace(/[^a-zA-Z0-9]/g, '')"> 

또는 :

var inputElems = document.getElemenstByTagName("input"); 
for (var i=0; i<inputElems.length; i++) { 
    var elem = inputElems[i]; 
    if (elem.nodeName == "INPUT" && /(?:^|\s+)alphanumericOnly(?:\s+|$)/.test(elem.className) { 
     elem.onkeyup = function() { 
      this.value = this.value.replace(/[^a-zA-Z0-9]/g, ''); 
     } 
    } 
} 
이제

당신은 당신의 요소 선언에 직접 넣을 수 중

jQuery 또는 다른 JavaScript 프레임 워크를 사용하는 것이 더 쉽습니다.

$("input.alphanumericOnly").bind("keyup", function(e) { 
    this.value = this.value.replace(/[^a-zA-Z0-9]/g, ''); 
}); 
0

당신이 변수 input로 저장 입력이 가정 ... 모든 후

input.onkeyup(function(e) { 
    this.value = this.value.replace(/\W/g, ''); 
} 

입력의 값이 영숫자가 아닌 문자 제거됩니다 키를 누를 때.

0

키 업 이벤트에서 .replace 메소드를 사용하는 경우, 입력 된대로 영숫자가 아닌 문자로 입력이 깜박이고 부주의하게 나타나고 OCD 사용자 자신을 따르지 않습니다. 이 특별한 경우

기본 키 코드의 목록을 찾을 수
$('.alphanumericOnly').keypress(function(e){ 
    var key = e.which; 
    return ((key >= 48 && key <= 57) || (key >= 65 && key <= 90) || (key >= 95 && key <= 122)); 
}); 

here :

클리너 접근 방식은 그들도 다음과 같이 입력에 도착하기 전에 키 누르기 이벤트에 결합하여 문자를 거부하는 것 세트가 귀하의 특정 요구에 맞지 않습니다.