programing

영숫자만 허용하는 Javascript용 RegEx

sourcetip 2022. 10. 28. 23:18
반응형

영숫자만 허용하는 Javascript용 RegEx

영숫자만 사용할 수 있는 reg ex를 찾아야 합니다.지금까지 시도했던 모든 사용자는 문자열이 영숫자일 경우에만 작동합니다. 즉, 문자와 숫자가 모두 포함되어 있습니다.둘 중 하나를 허용하고 둘 다 필요 없는 것을 원합니다.

/^[a-z0-9]+$/i

^         Start of string
[a-z0-9]  a or b or c or ... z or 0 or 1 or ... 9
+         one or more times (change to * to allow empty string)
$         end of string    
/i        case-insensitive

업데이트(범용 문자 지원)

이 regexp가 유니버설 문자를 지원해야 하는 경우 여기에서 Unicode 문자 목록을 찾을 수 있습니다.

예를 들어 다음과 같습니다./^([a-zA-Z0-9\u0600-\u06FF\u0660-\u0669\u06F0-\u06F9 _.-]+)$/

페르시아에 도움이 될 거야

치환된 결과를 반환하려면 다음 절차를 수행합니다.

var a = 'Test123*** TEST';
var b = a.replace(/[^a-z0-9]/gi,'');
console.log(b);

그러면 다음과 같이 반환됩니다.

Test123TEST

gi는 글로벌(첫 번째 일치뿐 아니라 대소문자를 구분하지 않음)을 의미하기 때문에 필요하므로 a-zA-Z 대신 a-z를 사용합니다.그리고 괄호 안의 ^는 "이 괄호 안에 없는 모든 것"을 의미합니다.

경고: 영숫자만 있으면 됩니다.하지만 이름이나 지리적 영역과 같은 국제 시장에서 이것을 사용하는 경우 유니코드 문자를 고려해야 합니다. 이 방법으로는 불가능합니다.예를 들어 "Allvarö"와 같은 이름이 있으면 "lvar"가 됩니다.

문자 클래스라는 단어를 사용합니다.은 '보다 낫다'에 해당합니다.^[a-zA-Z0-9_]+$:

^\w+$

설명:

  • ^ 문자열 시작
  • \w 임의의 단어 문자(A~Z, a~z, 0~9, _).
  • 문자열 끝 $

/[^\w]|_/g밑줄과 매치하지 않으셔도 됩니다.

/^([a-zA-Z0-9 _-]+)$/

위의 regex에서는 문자열 측면에 공백을 허용하고 특수 문자를 제한할 수 있습니다.a-z, A-Z, 0-9, 스페이스, 언더스코어 및 대시만 사용할 수 있습니다.

^\s*([0-9a-zA-Z]*)\s*$

또는 최소 1글자를 원하는 경우:

^\s*([0-9a-zA-Z]+)\s*$

대괄호는 문자 집합을 나타냅니다.^은 입력 시작입니다.$는 입력의 끝(또는 옵션에 따라서는 줄바꿈)입니다.\s는 공백입니다.

앞뒤 공백은 옵션입니다.

괄호는 원하는 정보를 추출할 수 있는 그룹화 연산자입니다.

EDIT: \w 문자 집합의 잘못된 사용을 삭제했습니다.

이거면 될 거야

^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]+$

영숫자만 사용할 수 있습니다.
casepaced : 테스트 케이스:

dGgs1s23 - valid
12fUgdf  - valid,
121232   - invalid, 
abchfe   - invalid,
 abd()*  - invalid, 
42232^5$ - invalid

또는

이것도 시도해 보세요.이 표현은 적어도 하나의 숫자와 하나의 문자를 만족시켰으며 다른 특수 문자는 만족하지 않았다.

^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$

angular는 다음과 같이 테스트할 수 있습니다.

$scope.str = '12fUgdf';
var pattern = new RegExp('^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$');
$scope.testResult = pattern.test($scope.str);

플런커 데모

참조:Angularjs 영숫자의 정규 표현

다국어 지원:

var filtered = 'Hello Привет 你好 123_456'.match(/[\p{L}\p{N}\s]/gu).join('')
console.log(filtered) // --> "Hello Привет 你好 123456"

이것은 대부분의 언어에서 임의의 문자, 숫자 또는 공백과 일치합니다.

  • [...] -> 조건과 일치
  • [ab] -> 'a' 또는 'b'와 일치합니다.
  • \p{L} -> 임의의 언어의 임의의 문자와 일치시킵니다.
  • \p{N} -> 임의의 언어로 임의의 숫자와 일치
  • \s -> 스페이스를 매칭
  • /g -> 첫 번째 일치 후에도 멈추지 않음
  • /u -> Unicode 패턴 매칭 지원

참고 자료: https://javascript.info/regexp-unicode

유효한 영숫자 문자열을 체크하는 대신 문자열에 비활성 문자가 없는지 체크함으로써 간접적으로 이를 실현할 수 있습니다.유효한 영숫자 문자열의 보완과 일치하는 것을 체크하는 것으로, 이것을 실시합니다.

/[^a-z\d]/i    

다음은 예를 제시하겠습니다.

var alphanumeric = "someStringHere";
var myRegEx  = /[^a-z\d]/i;
var isValid = !(myRegEx.test(alphanumeric));

「」의 논리 .isValid스트링이 유효한지 아닌지를 테스트하고 있기 때문입니다.

Samsung Galaxy A10s 6.2인치(2GB, 32GB ROM) Android 9.0, (13MP+2MP)+8MP 듀얼 SIM 4000mAh 4G LTE 스마트폰 - 블랙(BF19)유사한 스트링을 가지고 있습니다.

다음은 제가 한 일입니다.

string.replace(/[^a-zA-Z0-9 ,._-]/g, '').split(',').join('-').split(' ').join('-').toLowerCase()

주의: 허용됨,._-으로 ' '를 사용합니다.split() ★★★★★★★★★★★★★★★★★」join(),로로 합니다.-및 to to에 공간을 합니다.-각각 다음과 같다.

는 결국 이런 되었다.samsung-galaxy-a10s-6.2-inch-2gb-32gb-rom-android-9.0-13mp-2mp-8mp-dual-sim-4000mah-4g-lte-smartphone-black-bf19-20그게 내가 원하던 거야

더 나은 해결책이 있을 수 있지만 이것이 나에게 잘 맞는다는 것을 알게 되었다.

프로젝트 전체에서 사용할 문자열 프로토타입 확장

    String.prototype.alphaNumeric = function() {
        return this.replace(/[^a-z0-9]/gi,'');
    }

사용방법:

    "I don't know what to say?".alphaNumeric();
    //Idontknowwhattosay

Gayan Dissanayake★★★★★★ 。

/^[-\w\s]+$/

, 이제^[a-zA-Z0-9]+$라고 될 수 있다^\w+$

공간 대신 \s를 사용할 수 있습니다.\s는 공백뿐만 아니라 공백도 처리합니다.

우리가 영어로 엄격하게 작업하지 않는 한 이러한 정규 표현은 실패할 것이 거의 확실하다는 것을 많은 사용자들이 알고 있는 것 같습니다.하지만 나는 그렇게 제한되지 않을 쉬운 방법이 있다고 생각한다.

  1. 문자열 복사본을 모두 대문자로 만듭니다.
  2. 모두 소문자로 두 번째 복사를 하다

이러한 문자열에 일치하는 문자는 본질적으로 알파벳이 아닙니다.

let copy1 = originalString.toUpperCase();
let copy2 = originalString.toLowerCase();
for(let i=0; i<originalString.length; i++) {
    let bIsAlphabetic = (copy1[i] != copy2[i]);
}

옵션으로 숫자 0 ~9 를 찾는 것만으로 숫자를 검출할 수도 있습니다.

이 코드를 SCRACHPAD에 입력하고 액션을 확인하십시오.

var str=String("Blah-Blah1_2,oo0.01&zz%kick").replace(/[^\w-]/ig, '');

숫자만 사용할 수 있는 자바스크립트(알파벳)ETS 및 특수 장비

document.getElementById("onlynumbers").onkeypress = function (e) {
	onlyNumbers(e.key, e)
};

document.getElementById("onlyalpha").onkeypress = function (e) {
	onlyAlpha(e.key, e)
};

document.getElementById("speclchar").onkeypress = function (e) {
	speclChar(e.key, e)
};

function onlyNumbers(key, e) {
	var letters = /^[0-9]/g; //g means global
	if (!(key).match(letters)) e.preventDefault();
}

function onlyAlpha(key, e) {
	var letters = /^[a-z]/gi; //i means ignorecase
	if (!(key).match(letters)) e.preventDefault();
}

function speclChar(key, e) {
	var letters = /^[0-9a-z]/gi;
	if ((key).match(letters)) e.preventDefault();
}
<html>
   <head></head>
   <body>
      Enter Only Numbers: 
      <input id="onlynumbers" type="text">
      <br><br>
      Enter Only Alphabets: 
      <input id="onlyalpha" type="text" >
      <br><br>
      Enter other than Alphabets and numbers like special characters: 
      <input id="speclchar" type="text" >
   </body>
</html>

조금 늦었지만, 이것은 나에게 효과가 있었다.

/[^a-z A-Z 0-9]+/g

a-z : a부터z까지의 임의의 값.

A ~ Z : A ~Z(대문자).

0 ~ 9 : 0 ~9 의 임의의 숫자.

대괄호 안에 있는 모든 문자를 사용할 수 있으므로 "/" 및 "#"과 같은 다른 문자를 사용할 수 있습니다. regex는 다음과 같습니다.

/[^a-z A-Z 0-9 / #]+/g

이 사이트는 코딩하기 전에 정규식을 테스트하는 데 도움이 됩니다.https://regex101.com/

원하는 것을 수정하고 괄호 안에 추가하세요.경위:)

이거 드셔보세요.필드 ID를 #name... a-z(a~z), A-Z(A~Z), 0-9(0~9)로 바꿉니다.

jQuery(document).ready(function($){
    $('#name').keypress(function (e) {
        var regex = new RegExp("^[a-zA-Z0-9\s]+$");
        var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
        if (regex.test(str)) {
            return true;
        }
        e.preventDefault();
        return false;
    });
});

이 상수 저장

const letters = /^[a-zA-Z0-9]+$/

여기서 부품을 확인하려면 .match()를 사용합니다.

const string = 'Hey there...' // get string from a keyup listner
let id = ''
// iterate through each letters
for (var i = 0; i < string.length; i++) {
  if (string[i].match(letters) ) {
    id += string[i]
  } else {
    // In case you want to replace with something else
    id += '-'  
  }
}
return id

대소문자를 구분하는 영숫자:

if (/^[a-zA-Z0-9]+$/.test("SoS007")) {
  alert("match")
}

숫자와 문자만 허용(스페이스 없음)

function onlyAlphanumeric(str){
  str.value=str.value.replace(/\s/g, "");//No Space
  str.value=str.value.replace(/[^a-zA-Z0-9 ]/g, "");
}
<div>Only accept numbers and letters </div>
<input type="text"  onKeyUp="onlyAlphanumeric(this);" >

숫자, 알파벳만 받아들이기 위한 쿼리ETS 및 특수 장비

<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>

<body>
Enter Only Numbers: 
<input type="text" id="onlynumbers">
<br><br>
Enter Only Alphabets: 
<input type="text" id="onlyalpha">
<br><br>
Enter other than Alphabets and numbers like special characters: 
<input type="text" id="speclchar">

<script>
    $('#onlynumbers').keypress(function(e) {
      var letters=/^[0-9]/g; //g means global
      if(!(e.key).match(letters)) e.preventDefault();
	});
    
    $('#onlyalpha').keypress(function(e) {
      var letters=/^[a-z]/gi; //i means ignorecase
      if(!(e.key).match(letters)) e.preventDefault();
	});
    
    $('#speclchar').keypress(function(e) {
      var letters=/^[0-9a-z]/gi; 
      if((e.key).match(letters)) e.preventDefault();
	});
    </script>
</body>
</html>

**JQUERY to accept only NUMBERS , ALPHABETS and SPECIAL CHARACTERS **


<!DOCTYPE html>
    $('#onlynumbers').keypress(function(e) {
      var letters=/^[0-9]/g; //g means global
      if(!(e.key).match(letters)) e.preventDefault();
    });

    $('#onlyalpha').keypress(function(e) {
      var letters=/^[a-z]/gi; //i means ignorecase
      if(!(e.key).match(letters)) e.preventDefault();
    });

    $('#speclchar').keypress(function(e) {
      var letters=/^[0-9a-z]/gi; 
      if((e.key).match(letters)) e.preventDefault();
    });
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"> 

숫자만 입력:

알파벳만 입력:

알파벳 및 숫자 이외의 특수 문자 등 입력:

</body>
</html>

또한 알파벳 문자만 찾는 경우 다음과 같은 정규 표현을 사용할 수 있습니다.

/[^a-zA-Z]/gi 

타이프 스크립트의 샘플 코드:

let samplestring = "!#!&34!# Alphabet !!535!!! is safe"

let regex = new RegExp(/[^a-zA-Z]/gi);
    let res = samplestring.replace(regex,'');

    console.log(res);

주의: RegEx 구문이 궁금하신 경우 regexr을 방문하여 치트 시트를 사용하거나 정규 표현을 사용해 보십시오.

편집: 영숫자 --> 영숫자

언급URL : https://stackoverflow.com/questions/388996/regex-for-javascript-to-allow-only-alphanumeric

반응형