IT Share you

jquery / javascript로 숫자 나 문자를 감지합니까?

shareyou 2020. 12. 2. 22:15
반응형

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 설명서참조하세요 .keyCodewhich


먼저이 작업을 수행하는 경우 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

반응형