Yanıtlar:
/^[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
Güncelleme (evrensel karakterleri destekliyor)
Eğer bu regexp evrensel karakteri destekliyorsa , burada unicode karakterlerin listesini bulabilirsiniz .
Örneğin: /^([a-zA-Z0-9\u0600-\u06FF\u0660-\u0669\u06F0-\u06F9 _.-]+)$/
bu farsçaları destekleyecektir.
[^\W_]
ama [a-z0-9]
/ i bariz bir yoldur.
Değiştirilen bir sonucu döndürmek istiyorsanız, bu işe yarar:
var a = 'Test123*** TEST';
var b = a.replace(/[^a-z0-9]/gi,'');
console.log(b);
Bu geri dönecektir:
Test123TEST
Gi'nin gerekli olduğunu unutmayın çünkü küresel (sadece ilk maçta değil) ve büyük / küçük harfe duyarlı değil, bu yüzden a-zA-Z yerine az var. Ve parantez içindeki ^ "bu parantez içinde olmayan herhangi bir şey" anlamına gelir.
UYARI: Alfasayısal, tam olarak istediğiniz şeyse harikadır. Ancak bunu uluslararası bir pazarda bir kişinin adı veya coğrafi bölge gibi kullanıyorsanız, unicode karakterleri hesaba katmanız gerekir; Örneğin, "varlvarö" gibi bir adınız varsa, bunu "lvar" yapar.
Karakter sınıfı kelimesini kullanın. Aşağıdakiler a'ya eşdeğerdir ^[a-zA-Z0-9_]+$
:
^\w+$
Açıklama:
Kullanın /[^\w]|_/g
Eğer alt çizgi maç için istemiyorsanız.
/^([a-zA-Z0-9 _-]+)$/
Yukarıdaki normal ifade bir dize kenarındaki boşluklara izin verir ve özel karakterleri kısıtlar.
^\s*([0-9a-zA-Z]*)\s*$
veya en az bir karakter istiyorsanız:
^\s*([0-9a-zA-Z]+)\s*$
Köşeli ayraçlar bir dizi karakteri belirtir. ^ giriş başlangıcıdır. $ girişin sonu (veya seçeneklerinize bağlı olarak yeni satır). \ s boşluktur.
Öncesi ve sonrası boşluk isteğe bağlıdır.
Parantezler, istediğiniz bilgileri ayıklamanıza olanak tanıyan gruplama operatörüdür.
EDIT: \ w karakter kümesi hatalı kullanımımı kaldırıldı.
Geçerli bir alfasayısal dizeyi denetlemek yerine, dizeyi geçersiz karakterler olup olmadığını denetleyerek dolaylı olarak başarabilirsiniz. Bunu , geçerli alfasayısal dizenin tamamlayıcısıyla eşleşen herhangi bir şey olup olmadığını kontrol ederek yapın .
/[^a-z\d]/i
İşte bir örnek:
var alphanumeric = "someStringHere";
var myRegEx = /[^a-z\d]/i;
var isValid = !(myRegEx.test(alphanumeric));
isValid
Ben mantıksal değil operatör dikkat edin, ben dize yanlış olup olmadığını, geçerli olup olmadığını test ediyorum.
Bu çalışacak
^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]+$
Yalnızca alfasayısal karakterleri kabul eder:
test senaryoları:
dGgs1s23 - valid
12fUgdf - valid,
121232 - invalid,
abchfe - invalid,
abd()* - invalid,
42232^5$ - invalid
veya
Bunu da deneyebilirsiniz. bu ifade en az bir sayı ve bir karakter sağladı ve başka hiçbir özel karakter içermedi
^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$
açısal olarak test edebilirsiniz:
$scope.str = '12fUgdf';
var pattern = new RegExp('^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$');
$scope.testResult = pattern.test($scope.str);
Referanslı: Angularjs'deki alfasayısal için düzenli ifade
Dize prototipini projeniz boyunca kullanmak üzere genişletin
String.prototype.alphaNumeric = function() {
return this.replace(/[^a-z0-9]/gi,'');
}
Kullanımı:
"I don't know what to say?".alphaNumeric();
//Idontknowwhattosay
Birçok kullanıcı, kesinlikle İngilizce çalışmadığımız sürece, bu düzenli ifadelerin neredeyse kesinlikle başarısız olacağını fark etmiş gibi görünüyor. Ama bence bu kadar sınırlı olmayacak kolay bir yol var.
Bu dizelerde eşleşen karakterler kesinlikle doğada alfabetik değildir.
let copy1 = originalString.toUpperCase();
let copy2 = originalString.toLowerCase();
for(let i=0; i<originalString.length; i++) {
let bIsAlphabetic = (copy1[i] != copy2[i]);
}
İsteğe bağlı olarak, yalnızca 0 - 9 arasındaki rakamları arayarak rakamları da algılayabilirsiniz.
Bunu deneyin ... Alan kimliğinizi #name ile değiştirin ... az (a'dan z'ye), AZ (A'dan Z'ye), 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 yalnızca NUMARALARI, ALFABETLERİ ve ÖZEL KARAKTERLERİ kabul edecek
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>
Benzer bir dizem var Siyah (BF19) - 6.2-inç (2GB, 32GB ROM) Android 9.0 (13 MP + 2 MP) + 8MP Çift SIM 4000mAh 4G LTE akıllı telefon Samsung Galaxy A10s
Aşağıda yaptığım şey:
string.replace(/[^a-zA-Z0-9 ,._-]/g, '').split(',').join('-').split(' ').join('-').toLowerCase()
Ben izin ,._-
sonra kullanmak split()
ve join()
değiştirmek ,
için -
alan ve için uyarı-
sırasıyla.
Böyle bir şey elde ettim:
samsung-galaxy-a10s-6.2-inch-2gb-32gb-rom-android-9.0-13mp-2mp-8mp-dual-sim-4000mah-4g-lte-smartphone-black-bf19-20
istediğim buydu.
Daha iyi bir çözüm olabilir ama bu benim için iyi çalışıyor buldum.
Bu sabiti kaydet
const letters = /^[a-zA-Z0-9]+$/
şimdi, parça kullanımını kontrol etmek için .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 yalnızca NUMARALARI, ALFABETLERİ ve ÖZEL KARAKTERLERİ kabul edecek
<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">
Yalnızca Sayıları
Girin :
Yalnızca Harfleri
Girin :
Harflerden ve özel karakterler gibi sayılardan başka bir sayı girin:
</body>
</html>