2017-11-08 17 views
1

입력 필드를 문자, 마침표 및 하이픈으로 제한하고 싶습니다.특정 문자로 입력 제한

나는 다음과 같은 문자 입력이 허용되지만 아무 것도 입력 할 수 없다고 생각했습니다. 아마 내가 간과하고있는 것이 분명 할 것입니다.

$('input').on('keypress', function(event){ 
    if (event.keyCode > 65 || event.keyCode < 90) 
     return false; 
}); 

미리 감사드립니다.

답변

2

정규 표현식을 사용하여 입력 된 텍스트를 허용하려는 값과 비교하고 원하지 않는 값을 제거 할 수 있습니다. 또한 값을 확인할 때 keyup 이벤트를 사용해야합니다. input, blurpaste 이벤트를 사용하여 모든 이벤트가 모든 브라우저에 적용되는지 확인할 수도 있습니다. 이 시도 :

$('input').on('input blur keyup paste', function() { 
 
    $(this).val(function(i, v) { 
 
    return v.replace(/[^a-z\.-]/ig, ''); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input name="foo" type="text" />

+0

가'로 preventDefault()'솔루션에 비해이 솔루션 더 나은가요? 어느 것이 더 빠르고 더 나은가요? – VTodorov

+1

'keydown' /'keyup' 이벤트 기반 제한을 둘러보기가 매우 쉽기 때문에'paste' 이벤트에'preventDefault()'가 작동하지 않습니다. –

1

를 만 다음이 시도 번호을 사용하려면 :

$('#text').keypress(function (e) { 
var regex = new RegExp("^[a-zA-Z]\-.+$"); 
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode); 
if (regex.test(str)) { 
    return true; 
} 

e.preventDefault(); 
return false; 
}); 
+1

숫자가 맞습니까? OP는 명시 적으로 :'입력 필드를 임의의 문자, 마침표 및 하이픈으로 제한' –

+0

정규식을 업데이트했습니다. – JSK