Bagaimana untuk mengesahkan sama ada input adalah abjad angka atau bukan abjad menggunakan JavaScript?

王林
Lepaskan: 2023-08-24 10:33:02
ke hadapan
1095 orang telah melayarinya

如何使用 JavaScript 验证输入是字母数字还是非字母数字?

Tugas kami adalah untuk mengesahkan rentetan input dan perlu menyemak sama ada ia adalah abjad angka menggunakan JavaScript. Rentetan abjad angka hanya mengandungi aksara angka dan abjad, termasuk aksara besar atau huruf kecil, malah bukan sebarang aksara atau ruang khas.

Di bawah, kita akan melihat dua kaedah untuk mengesahkan rentetan input.

Gunakan kaedah charCodeAt()

Kita boleh menggunakan kaedah charCodeAT() untuk mendapatkan nilai ASCII bagi sebarang aksara. Di sini, kami akan mengulangi setiap aksara rentetan dan menyemak nilai ASCII bagi setiap aksara. Kod ASCII antara 48 dan 57 mewakili aksara angka, 97 dan 122 mewakili aksara abjad huruf kecil, dan 65 dan 90 mewakili aksara abjad huruf besar.

Jadi jika kita menemui mana-mana aksara yang nilai ASCIInya bukan antara julat ASCII yang diberikan di atas, kita boleh mengatakan bahawa rentetan itu bukan abjad angka.

Tatabahasa

Pengguna boleh menggunakan kaedah charCodeAT() mengikut sintaks berikut untuk menyemak sama ada rentetan input ialah abjad angka.

let charCode = char.charCodeAt(0);
if (!(charCode > 47 && charCode < 58) &&
   !(charCode > 96 && charCode < 123) &&
   !(charCode > 64 && charCode < 91)
) {
   // string is not alphanumeric
   return;
}
Salin selepas log masuk

Dalam sintaks di atas, char ialah aksara tunggal. Kami menggunakan kaedah charCodeAT() untuk mendapatkan nilai ASCII bagi satu aksara. Selepas itu, kami menggunakan pernyataan if-else untuk menyemak sama ada kod ASCII bagi aksara tersebut berada di antara nilai ASCII bagi aksara angka dan abjad.

Contoh 1

Dalam contoh di bawah, kami telah mencipta dua rentetan input yang mengandungi pelbagai aksara. Selain itu, kami mentakrifkan fungsi validateString(). Dalam fungsi validateString(), kami menggunakan gelung for-of untuk mengulangi setiap aksara rentetan. Selain itu, kami menggunakan kaedah charCodeAt() untuk mendapatkan nilai ASCII sesuatu aksara dengan menghantar 0 sebagai hujah.

Kemudian kita semak sama ada terdapat aksara yang kod ASCIInya bukan antara julat ASCII untuk aksara angka dan abjad, kita boleh mengatakan bahawa rentetan itu bukan abjad angka.

<html>
<body>
   <h3>Using the <i> for loop and charCodeAT() method </i> to check if input string is alphanumeric or not</h3>
   <div id = "output"> </div>
   <script>
      var output = document.getElementById('output');
      let str1 = "aredsUADFSKH121342kjbrewdfv";
      let str2 = "dfdrg rflrtke 435 3df;fd'gfdg";
      function validateString(string) {
         for (let char of string) {
            let charCode = char.charCodeAt(0);
            if (!(charCode > 47 && charCode < 58) &&  !(charCode > 96 && charCode < 123) &&    !(charCode > 64 && charCode < 91)
            ) {
               output.innerHTML += "The string " + string + " is not alphanumeric! </br>";
               return;
            }
         }
         output.innerHTML += "The string " + string + " is an alphanumeric! </br>"; 
      }
      validateString(str1);
      validateString(str2);
   </script>
</body>
</html>
Salin selepas log masuk

Gunakan ungkapan biasa

Kami boleh mencipta ungkapan biasa menggunakan pembina RegExp() dengan kata kunci baharu. Ia ialah corak di mana kita boleh memadankan rentetan input dengan corak ungkapan biasa dan mengembalikan boolean benar atau palsu berdasarkan ini.

Tatabahasa

Pengguna boleh menggunakan ungkapan biasa untuk mengesahkan rentetan abjad angka dengan mengikut sintaks di bawah.

let strRegex = new RegExp(/^[a-z0-9]+$/i);
let result = strRegex.test(string); 
Salin selepas log masuk

Dalam sintaks di atas, pembolehubah hasil mengandungi nilai boolean berdasarkan sama ada rentetan adalah abjad angka atau tidak.

Ekspresi biasa dijelaskan

  • ^ - Mewakili permulaan rentetan.

  • [a-z0-9]+ - hanya mewakili aksara antara a hingga z atau 0 hingga 9.

  • $ - Mewakili hujung rentetan.

  • i – Ini ialah bendera untuk ungkapan biasa yang digunakan untuk perbandingan rentetan tidak sensitif huruf besar-besaran.

Contoh 2

Dalam contoh di bawah, kami memanggil fungsi validateString() dengan menghantar pelbagai rentetan sebagai parameter. Dalam fungsi kita mencipta tafsiran biasa seperti di atas. Selepas itu, kami menggunakan kaedah test() dengan menghantar ungkapan biasa sebagai rujukan dan menghantar rentetan input sebagai parameter pengesahan.

Jika kaedah test() kembali benar, rentetan input ialah abjad angka dan hanya mengandungi aksara angka dan abjad jika tidak, rentetan itu bukan abjad angka.

<html>
<body>
   <h3>Using the <i> Regular expression </i> to check if input string is alphanumeric or not</h3>
   <div id = "output"> </div>
   <script>
      var output = document.getElementById('output');
      let str1 = "Welcome to the tutorialsPoint";
      let str2 = "Hello123";
      function validateString(string) {
         
         // Defining the regular expression
         let strRegex = new RegExp(/^[a-z0-9]+$/i);
         
         // match the regex with the string
         let result = strRegex.test(string);
         if (result) {
            output.innerHTML += "The string " + string + " is an alphanumeric! </br>";
         } else {
            output.innerHTML += "The string " + string + " is not alphanumeric! </br>";
         }
      }
      validateString(str1);
      validateString(str2);
   </script>
</body>
</html>
Salin selepas log masuk

Contoh 3

Dalam contoh di bawah, kami menggunakan kaedah Prompt () untuk mendapatkan rentetan daripada pengguna. Selepas itu, kami menggunakan ungkapan biasa untuk mengesahkan rentetan, seperti yang kami gunakan dalam contoh di atas, tetapi di sini kami menggunakan ungkapan biasa yang berbeza.

Di sini, [^a-zA-Z0-9] mewakili sebarang aksara yang bukan antara a hingga z, A hingga Z dan 0 hingga 9. Oleh itu, kaedah test() mengembalikan benar jika rentetan itu bukan abjad angka dan palsu untuk rentetan abjad angka.

<html>
<body>
   <h3>Using the <i> Regular expression </i> to check if input string is alphanumeric or not</h3>
   <div id = "output"> </div>
   <button onClick = "getInputAndValidate()"> Validate random string </button>
   <script>
      var output = document.getElementById('output');
      function getInputAndValidate() {
         let string = prompt("Enter a string to validate", "1232dwe");
         let strRegex = new RegExp(/[^a-zA-Z0-9]/);
         
         // match the regex with the string
         let result = strRegex.test(string);
         if (!result) {
            output.innerHTML += "The string " + string + " is an alphanumeric! </br>";
         } else {
            output.innerHTML += "The string " + string + " is not alphanumeric! </br>";
         }
      }
   </script>
</body>
</html>
Salin selepas log masuk

Kami belajar tentang mengesahkan rentetan alfanumerik dalam tutorial ini. Kami menggunakan dua ungkapan biasa yang berbeza untuk mengesahkan rentetan alfanumerik. Selain itu, kami telah mempelajari cara mudah menggunakan kaedah for loop dan charCodeAT(), tetapi ia tidak cekap masa dan tidak disyorkan.

Atas ialah kandungan terperinci Bagaimana untuk mengesahkan sama ada input adalah abjad angka atau bukan abjad menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!