jquery / javascript로 숫자 나 문자를 감지합니까?
사용자가 문자 나 숫자를 입력하는 경우에만 if 문을 사용하여 코드를 실행하고 싶습니다.
나는 사용할 수있다
if(event.keyCode == 48 || event.keyCode == 49 || event.keyCode == 50..) {
// run code
}
이 작업을 수행하는 더 쉬운 방법이 있습니까? 일부 키 코드가 모든 웹 브라우저에서 작동하지 않을 수 있습니까?
문자 범위를 확인하려면보다 큼과보다 작음을 사용할 수 있습니다.
if (event.keyCode >= 48 && event.keyCode <= 57)
alert("input was 0-9");
if (event.keyCode >= 65 && event.keyCode <= 90)
alert("input was a-z");
보다 동적 인 확인을 위해 정규식을 사용하십시오.
var inp = String.fromCharCode(event.keyCode);
if (/[a-zA-Z0-9-_ ]/.test(inp))
alert("input was a letter, number, hyphen, underscore or space");
속성과 속성 의 차이점과 적용되는 이벤트 를 설명 하는 속성에 대한 MDC 설명서 를 참조하세요 .keyCode
which
먼저이 작업을 수행하는 경우 keypress
사용자가 입력 한 캐릭터에 대한 정보를 안정적으로 얻을 수있는 유일한 이벤트 인 이벤트에 있는지 확인하십시오 . 그런 다음 Andy E가 제안한 접근 방식을 사용합니다.
document.onkeypress = function(evt) {
evt = evt || window.event;
var charCode = evt.which || evt.keyCode;
var charStr = String.fromCharCode(charCode);
if (/[a-z0-9]/i.test(charStr)) {
alert("Letter or number typed");
}
};
백 스페이스를 확인하려면 keydown
대신 이벤트를 사용하고 keyCode
여러 브라우저 (Chrome 포함)가 keypress
백 스페이스 키에 대한 이벤트를 실행 하지 않기 때문에 8 개 중 a 를 확인합니다 .
사용 event.key
하고 현대적인 JS!
더 이상 번호 코드가 없습니다. 키를 직접 확인할 수 있습니다.
const key = event.key.toLowerCase();
if (key.length !== 1) {
return;
}
const isLetter = (key >= "a" && key <= "z");
const isNumber = (key >= "0" && key <= "9");
if (isLetter || isNumber) {
// Do something
}
간단한 정규식을 사용할 수도 있습니다. ^$
1 자 보장, i
대소 문자 무시
/^[a-z0-9]$/i.test(event.key)
또는 개별적으로 :
const isLetter = /^[a-z]$/i.test(event.key)
const isNumber = /^[0-9]$/i.test(event.key)
if(event.keyCode >= 48 && event.keyCode <= 90) {
//the key pressed was alphanumeric
}
숫자 값 :
function ValidNumeric()
{
var charCode = (event.which) ? event.which:event.KeyCode;
if (charCode>=48 && charCode<=57)
{
return true;
}
else
return false;
}
여기서 48과 57은 숫자 값의 범위입니다.
알파벳 :
function ValidAplpha()
{
var charCode = (event.which) ? event.which:event.KeyCode;
if(charCode >= 65 && charCode <= 90 || charCode>=97 && charCode<=122)
{
return true;
}
else
return false;
}
여기서 65 ~ 90은 Capital alphabates (AZ)의 범위이고 97 ~ 122는 small alphabates (az)의 범위입니다.
번호 확인, 잘 작동합니다.
$(document).ready(function () {
$(".TxtPhone").keypress(function (e) {
var key = e.charCode || e.keyCode || 0;
// only numbers
if (key < 48 || key > 58) {
return false;
}
});
});
onKeyPress 이벤트 와 함께 charCode 를 사용할 수도 있습니다 .
if (event.charCode > 57 || event.charCode < 48) {
itsNotANumber();
}
else {
itsANumber();
}
$.isNumeric(value);
반환 유형 사용 은 부울입니다.
Accept numbers or letters with javascript by Dynamic Process using regular Expression.
Add onkeypress Event for Specific Control
onkeypress="javascript:return isNumber(event)"
function numOnly(evt) {
evt = evt || window.event;
var charCode = evt.which || evt.keyCode;
var charStr = String.fromCharCode(charCode);
if (/[0-9]/i.test(charStr)) {
return true;
}
else
return false;
}
function Alphanum(evt) {
evt = evt || window.event;
var charCode = evt.which || evt.keyCode;
var charStr = String.fromCharCode(charCode);
if (/[a-z0-9]/i.test(charStr)) {
return true;
}
else
return false;
}
$('#phone').on('keydown', function(e) {
let key = e.charCode || e.keyCode || 0;
//32 = space - border of visible and non visible characters - allows us to backspace and use arrows etc
//127 - delete
if (key > 32 && (key < 48 || key > 58) && key !== 127) {
e.preventDefault();
return false;
}
});
modified answer of @user4584103, allows us to remove characters, and navigate in input box and filter out every not num character
As @Gibolt said, you should Use event.key
Because charCode, keyCode and Which are being deprecated.
참고URL : https://stackoverflow.com/questions/2257070/detect-numbers-or-letters-with-jquery-javascript
'IT Share you' 카테고리의 다른 글
iOS 11 navigationItem.titleView 너비가 설정되지 않음 (0) | 2020.12.02 |
---|---|
System.Data.Linq.ChangeConflictException : 행이 없거나 변경되었습니다. (0) | 2020.12.02 |
iOS 기기에서 PHP 페이지에 액세스했는지 확인 (0) | 2020.12.02 |
iOS 7 (4 인치 레티 나 디스플레이)에서 앱을 실행할 때 검은 색 막대가 표시됨 (0) | 2020.12.02 |
iPhone 6/6 Plus 가로 전용 앱의 시작 이미지를 어떻게 생성합니까? (0) | 2020.12.02 |