Jawaban:
/^[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
Perbarui (mendukung karakter universal)
Jika Anda perlu regexp ini mendukung karakter universal, Anda dapat menemukan daftar karakter unicode di sini.
sebagai contoh: /^([a-zA-Z0-9\u0600-\u06FF\u0660-\u0669\u06F0-\u06F9 _.-]+)$/
ini akan mendukung persia.
[^\W_]
tetapi [a-z0-9]
/ i adalah cara yang jelas.
Jika Anda ingin mengembalikan hasil yang diganti, maka ini akan berhasil:
var a = 'Test123*** TEST';
var b = a.replace(/[^a-z0-9]/gi,'');
console.log(b);
Ini akan mengembalikan:
Test123TEST
Perhatikan bahwa gi diperlukan karena itu berarti global (bukan hanya pada pertandingan pertama), dan case-insensitive, itulah sebabnya saya memiliki az bukannya a-zA-Z. Dan ^ di dalam tanda kurung berarti "apa pun yang tidak ada dalam tanda kurung ini".
PERINGATAN: Alfanumerik bagus jika itu yang Anda inginkan. Tetapi jika Anda menggunakan ini di pasar internasional seperti nama seseorang atau wilayah geografis, maka Anda perlu memperhitungkan karakter unicode, yang ini tidak akan dilakukan. Misalnya, jika Anda memiliki nama seperti "lvar", itu akan membuatnya "lvar".
Gunakan kelas karakter kata. Berikut ini setara dengan ^[a-zA-Z0-9_]+$
:
^\w+$
Penjelasan:
Gunakan /[^\w]|_/g
jika Anda tidak ingin mencocokkan garis bawah.
/^([a-zA-Z0-9 _-]+)$/
regex di atas memungkinkan spasi di samping string dan membatasi karakter khusus. Ini hanya memungkinkan az, AZ, 0-9, Spasi, Garis Bawah dan tanda hubung.
^\s*([0-9a-zA-Z]*)\s*$
atau, jika Anda menginginkan minimal satu karakter:
^\s*([0-9a-zA-Z]+)\s*$
Kurung kotak menunjukkan serangkaian karakter. ^ adalah awal input. $ adalah akhir dari input (atau baris baru, tergantung pada opsi Anda). Adalah spasi.
Ruang putih sebelum dan sesudah adalah opsional.
Tanda kurung adalah operator pengelompokan untuk memungkinkan Anda mengekstrak informasi yang Anda inginkan.
EDIT: menghapus kesalahan penggunaan set karakter saya.
Alih-alih memeriksa string alfanumerik yang valid, Anda dapat mencapai ini secara tidak langsung dengan memeriksa string untuk karakter yang tidak valid. Lakukan dengan memeriksa apa pun yang cocok dengan pelengkap string alfanumerik yang valid.
/[^a-z\d]/i
Berikut ini sebuah contoh:
var alphanumeric = "someStringHere";
var myRegEx = /[^a-z\d]/i;
var isValid = !(myRegEx.test(alphanumeric));
Perhatikan operator bukan logis di isValid
, karena saya menguji apakah string itu salah, bukan apakah itu valid.
Ini akan bekerja
^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]+$
Ini hanya menerima karakter alfanumerik saja:
kasus uji yang dikemukakan:
dGgs1s23 - valid
12fUgdf - valid,
121232 - invalid,
abchfe - invalid,
abd()* - invalid,
42232^5$ - invalid
atau
Anda juga dapat mencoba yang ini. ungkapan ini memuaskan setidaknya satu angka dan satu karakter dan tidak ada karakter khusus lainnya
^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$
di sudut dapat menguji seperti:
$scope.str = '12fUgdf';
var pattern = new RegExp('^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$');
$scope.testResult = pattern.test($scope.str);
Perpanjang prototipe string untuk digunakan di seluruh proyek Anda
String.prototype.alphaNumeric = function() {
return this.replace(/[^a-z0-9]/gi,'');
}
Pemakaian:
"I don't know what to say?".alphaNumeric();
//Idontknowwhattosay
Sepertinya banyak pengguna memperhatikan ini, ekspresi reguler ini hampir pasti akan gagal kecuali kami benar-benar bekerja dalam bahasa Inggris. Tapi saya pikir ada cara mudah ke depan yang tidak akan terbatas.
Karakter apa pun yang cocok dengan string itu jelas tidak alfabet.
let copy1 = originalString.toUpperCase();
let copy2 = originalString.toLowerCase();
for(let i=0; i<originalString.length; i++) {
let bIsAlphabetic = (copy1[i] != copy2[i]);
}
Secara opsional, Anda juga dapat mendeteksi angka dengan hanya mencari angka 0 hingga 9.
Coba ini ... Ganti ID bidang Anda dengan #name ... az (a ke z), AZ (A ke Z), 0-9 (0 hingga 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 hanya menerima NOMOR, ALFABET dan KARECTER KHUSUS
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>
Saya memiliki string yang mirip dengan Samsung Galaxy A10s 6.2-Inch (2GB, 32GB ROM) Android 9.0, (13MP + 2MP) + 8MP Dual SIM 4000mAh 4G LTE Smartphone - Hitam (BF19)
Di bawah ini yang saya lakukan:
string.replace(/[^a-zA-Z0-9 ,._-]/g, '').split(',').join('-').split(' ').join('-').toLowerCase()
Perhatikan saya diizinkan ,._-
kemudian gunakan split()
dan join()
ganti ,
ke -
dan ruang -
masing - masing.
Saya akhirnya mendapatkan sesuatu seperti ini:
samsung-galaxy-a10s-6.2-inch-2gb-32gb-rom-android-9.0-13mp-2mp-8mp-dual-sim-4000mah-4g-lte-smartphone-black-bf19-20
yang saya inginkan.
Mungkin ada solusi yang lebih baik tetapi ini yang saya temukan bekerja dengan baik untuk saya.
Simpan konstanta ini
const letters = /^[a-zA-Z0-9]+$/
sekarang, untuk mengecek penggunaan part .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 hanya menerima NOMOR, ALFABET, dan KARAKTER KHUSUS
<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">
Masukkan Hanya Angka:
Masukkan Hanya Abjad:
Masukkan selain Abjad dan angka seperti karakter khusus:
</body>
</html>