답변:
/^[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
업데이트 (범용 문자 지원)
이 정규 표현식이 범용 문자를 지원 해야하는 경우 여기에서 유니 코드 문자 목록을 찾을 수 있습니다.
예를 들면 다음과 같습니다. /^([a-zA-Z0-9\u0600-\u06FF\u0660-\u0669\u06F0-\u06F9 _.-]+)$/
페르시아어를 지원합니다.
[^\W_]
있지만 [a-z0-9]
/ i는 확실한 방법입니다.
교체 된 결과를 반환하려면 다음과 같이하십시오.
var a = 'Test123*** TEST';
var b = a.replace(/[^a-z0-9]/gi,'');
console.log(b);
이것은 다음을 반환합니다.
Test123TEST
gi는 전역 (첫 번째 일치뿐만 아니라)을 의미하고 대소 문자를 구분하지 않기 때문에 필요하므로 a-zA-Z 대신 az가 있습니다. 그리고 괄호 안의 ^는 "이 괄호 안에없는 것"을 의미합니다.
경고 : 정확히 원하는 경우 영숫자가 좋습니다. 그러나 사람의 이름이나 지리적 영역과 같은 국제 시장에서이를 사용하는 경우 유니 코드 문자를 고려해야합니다. 예를 들어, "Âlvarö"와 같은 이름이 있으면 "lvar"가됩니다.
단어 문자 클래스를 사용하십시오. 다음은 다음과 같습니다 ^[a-zA-Z0-9_]+$
.
^\w+$
설명:
/[^\w]|_/g
밑줄과 일치하지 않으려면 사용하십시오 .
/^([a-zA-Z0-9 _-]+)$/
위의 정규 표현식은 문자열 옆에 공백을 허용하고 특수 문자를 제한합니다. az, AZ, 0-9, Space, 밑줄 및 대시 만 허용합니다.
유효한 영숫자 문자열을 확인하는 대신 문자열에 유효하지 않은 문자가 있는지 확인하여 간접적으로이를 달성 할 수 있습니다. 유효한 영숫자 문자열 의 보완 과 일치하는 항목을 확인하여 수행 하십시오.
/[^a-z\d]/i
예를 들면 다음과 같습니다.
var alphanumeric = "someStringHere";
var myRegEx = /[^a-z\d]/i;
var isValid = !(myRegEx.test(alphanumeric));
isValid
문자열이 유효한지 여부가 아닌 거짓인지 테스트하고 있기 때문에 의 논리 not 연산자를 주목하십시오 .
이 작동합니다
^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]+$
alphanumeriuc 문자 만 허용합니다.
테스트 사례는 다음과 같습니다.
dGgs1s23 - valid
12fUgdf - valid,
121232 - invalid,
abchfe - invalid,
abd()* - invalid,
42232^5$ - invalid
또는
이것도 시도해 볼 수 있습니다. 이 표현은 하나 이상의 숫자와 하나의 문자를 만족하며 다른 특수 문자는 만족하지 않았습니다
^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$
각도에서 다음과 같이 테스트 할 수 있습니다.
$scope.str = '12fUgdf';
var pattern = new RegExp('^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$');
$scope.testResult = pattern.test($scope.str);
많은 사용자가 우리가 영어로 엄격하게 작업하지 않는 한이 정규 표현식이 거의 확실하게 실패하는 것으로 나타났습니다. 그러나 나는 그렇게 제한되지 않는 쉬운 방법이 있다고 생각합니다.
해당 문자열에서 일치하는 문자는 사실상 알파벳이 아닙니다.
let copy1 = originalString.toUpperCase();
let copy2 = originalString.toLowerCase();
for(let i=0; i<originalString.length; i++) {
let bIsAlphabetic = (copy1[i] != copy2[i]);
}
선택적으로 숫자 0에서 9까지만 찾아 숫자를 감지 할 수도 있습니다.
다음을 시도하십시오 ... 필드 ID를 #name으로 바꾸십시오 ... az (a ~ z), AZ (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;
});
});
숫자, 알파벳 및 특수 문자 만 허용하는 Javascript
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>
나는 유사한 문자열이 블랙 (BF19) - 6.2 인치 (2GB, 32 기가 바이트 ROM) 안드로이드 9.0 (1300 만 화소 + 2MP) + 800 만 화소 듀얼 SIM 4000MAH 4G LTE 스마트 폰 삼성 갤럭시 A10S를
아래는 내가 한 일입니다.
string.replace(/[^a-zA-Z0-9 ,._-]/g, '').split(',').join('-').split(' ').join('-').toLowerCase()
내가 허용 주목 ,._-
후 사용 split()
및 join()
교체 ,
에 -
에 공간 -
각각.
나는 다음과 같은 것을 얻었습니다 :
samsung-galaxy-a10s-6.2-inch-2gb-32gb-rom-android-9.0-13mp-2mp-8mp-dual-sim-4000mah-4g-lte-smartphone-black-bf19-20
그것은 내가 원하는 것입니다.
더 나은 해결책이있을 수 있지만 이것이 나를 위해 잘 작동하는 것으로 나타났습니다.
이 상수를 저장
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
숫자, 알파벳, 특수 문자 만 허용하는 Jquery
<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>