Rumah  >  Artikel  >  hujung hadapan web  >  Ekstrak nombor daripada rentetan menggunakan JavaScript

Ekstrak nombor daripada rentetan menggunakan JavaScript

WBOY
WBOYke hadapan
2023-08-26 13:09:211656semak imbas

使用 JavaScript 从字符串中提取数字

Dalam JavaScript, terdapat pelbagai cara untuk mengekstrak nombor daripada rentetan. Satu cara ialah menggunakan kaedah match() dan ungkapan biasa untuk mencari semua nombor dalam rentetan. Cara lain ialah menggunakan kaedah replace() dan ungkapan biasa untuk mengalih keluar semua aksara bukan angka daripada rentetan, hanya meninggalkan nombor.

Mari kita fahami setiap kaedah dengan bantuan beberapa contoh.

Gunakan kaedah padanan() dan ungkapan biasa

Ekspresi biasa ialah corak carian yang boleh kami cipta dengan menggabungkan berbilang huruf dan aksara khas. Kita boleh menggunakan corak carian "/d+/" untuk mencari nombor dalam rentetan. Dalam mod carian 'd+', d mewakili nombor antara 0 dan 9 dan '+' mewakili sekurang-kurangnya satu digit yang ditemui.

Jadi, kita boleh menggunakan ungkapan biasa ini sebagai hujah kepada kaedah padanan terbina dalam JavaScript untuk mencari semua nombor dalam rentetan tertentu.

Tatabahasa

Pengguna boleh mengekstrak semua nombor daripada rentetan yang diberikan dengan mengikut sintaks berikut.

let str = "Sampll323435 Stringrfd23232ftesd3454!";
let numbers = str.match('/\d+/');

Dalam sintaks di atas, kami telah menggunakan kaedah padanan(), yang sepadan dengan kejadian nombor dalam rentetan yang diberikan.

Contoh

Dalam contoh ini, kami mencipta rentetan yang mengandungi nombor. Selepas itu, kami mencipta ungkapan biasa dengan bendera g untuk memadankan semua kejadian nombor dalam rentetan dan menyerahkannya sebagai parameter kaedah padanan() untuk dipadankan dalam rentetan

Kaedah

match() mengembalikan tatasusunan yang mengandungi semua nombor berdasarkan padanan ungkapan biasa.

<html>
   <body>
      <h3>Using the <i> match () </i> Method and Regular Expression to extract the numbers from the string</h3>
      <div id = "output"> </div>
      <script>
         let output = document.getElementById("output");

         // defining the string containing the numbers
         let str = "Sampll323435 Stringrfd23232ftesd3454!";
         output.innerHTML = "Original String: " + str + "<br/>";

         // Matching for the numbers using the match() method.
         let numbers = str.match(/\d+/g);

         // numbers is an array of all occurrences of numbers
         
         // if any single number is available in the string, then print numbers
         if (numbers.length > 0) {
            output.innerHTML += "<br> Numbers in the StringL: " + numbers + "<br/>";
         }
      </script>
   </body>
</html>

Gunakan kaedah replace() dan ungkapan biasa

Kami boleh menggunakan ungkapan biasa untuk mengenal pasti aksara angka dan aksara lain. Oleh itu, kami akan menggunakan ungkapan biasa untuk mengenal pasti aksara lain dan menggantikannya dengan rentetan kosong. Dengan cara ini kita boleh mengalih keluar semua aksara kecuali nombor dan mengekstrak nombor daripada rentetan.

Tatabahasa

Pengguna boleh menggunakan kaedah replace() untuk mengekstrak nombor daripada rentetan dengan mengikut sintaks berikut.

let result = str.replace(/[^0-9]/g,"");

Dalam sintaks di atas, str ialah rentetan yang dipetik dari mana kita ingin mengeluarkan nombor. Selain itu, ungkapan biasa [^0-9] mewakili semua aksara kecuali 0 hingga 9.

Contoh

Dalam contoh di bawah, kami menggunakan kaedah replace() untuk menggantikan semua aksara kecuali aksara angka dengan rentetan kosong. Kami lulus ungkapan biasa sebagai parameter pertama dan rentetan kosong sebagai parameter kedua.

Kaedah

replace() mengembalikan rentetan selepas menggantikan semua aksara kecuali aksara angka dengan rentetan kosong. Dalam output, kita dapat melihat bahawa ia tidak mengembalikan tatasusunan seperti kaedah match(), tetapi hanya mengembalikan satu rentetan.

<html>
   <body>
      <h3>Using the <i> replace() </i> method and regular expression to extract the numbers from the string</h3>
      <div id = "output"> </div>
      <script>
         let output = document.getElementById("output");
         let string = "dnbdj53454 4k54k6j23in k09e30n9923g9 kjm545";
         output.innerHTML = "Original String: " + string + "<br/>";

         // replace all non-numeric characters with empty string
         let result = string.replace(/[^0-9]/g, "");
         output.innerHTML +="<br> Numbers in the string: " + result + "<br/>";
      </script>
   </body>
</html>

Ekstrak nombor daripada rentetan menggunakan kaedah reduce()

reduce() ialah kaedah perpustakaan terbina dalam JavaScript. Kita boleh menukar rentetan kepada tatasusunan aksara dan menggunakan kaedah reduce() pada tatasusunan aksara. Kaedah reduce() membantu kami mengurangkan tatasusunan kepada satu elemen dengan menjalankan operasi pada elemen tatasusunan.

Di sini kami akan menyemak sama ada watak itu adalah nombor dan menambahnya pada elemen akhir jika tidak, kami akan menambah rentetan kosong.

Tatabahasa

Pengguna boleh menggunakan kaedah reduce() untuk mengekstrak nombor daripada rentetan mengikut sintaks di bawah.

let charArray = [...string];
let numbers = charArray.reduce(function (numString, element) {
   let nums = "0123456789";
   if (nums.includes(element)) {
      return numString + element;
   }
   return numString;
},"");

Dalam sintaks di atas, kami menggunakan kaedah pengurangan dengan charArray. Kami lulus fungsi panggil balik sebagai parameter pertama dan rentetan kosong sebagai parameter kedua.

Algoritma

  • Langkah 1 - Tukar rentetan kepada tatasusunan aksara menggunakan operator hamparan.

  • Langkah 2 - Gunakan kaedah reduce() charArray untuk mengurangkan keseluruhan tatasusunan kepada rentetan tunggal yang mengandungi nombor sahaja.

  • Langkah 3 - Lulus fungsi panggil balik sebagai parameter pertama kaedah reduce(), yang mengembalikan rentetan yang dikurangkan

  • Langkah 4 - Dalam fungsi panggil balik, lulus numString sebagai parameter pertama, yang merupakan rentetan dipermudahkan, dan elemen sebagai parameter kedua, iaitu elemen tatasusunan yang mewakili rentetan aksara rentetan.

  • Langkah 5 - Dalam fungsi panggil balik, semak sama ada aksara tatasusunan bermakna elemen itu berada di antara 0 dan 9. Jika ya, aksara ditambahkan pada numString dan dikembalikan jika tidak, numString dikembalikan tidak berubah.

  • Langkah 6 - Lulus rentetan kosong sebagai parameter kedua kaedah reduce(), iaitu nilai awal numString.

  • Langkah 7 - Selepas lelaran lengkap tatasusunan, kaedah reduce() mengembalikan nilai akhir numString.

Contoh

Dalam contoh di bawah, kami telah mengambil rentetan yang mengandungi nombor dan melaksanakan algoritma di atas untuk mengekstrak nombor daripada rentetan.

<html>
   <body>
      <h3>Using the <i>reduce() </i>method to extract the numbers from the string</h3>
      <div id = "output"> </div>
      <script>
         let output = document.getElementById("output");
         let string = "34gr345fr45";
         output.innerHTML += "Original String: " + string + "<br/>";
         let charArray = [...string];
         let numbers = charArray.reduce(function (numString, element) {
            let nums = "0123456789";
            if (nums.includes(element)) {
               return numString + element;
            }
            return numString;
         }, "");
         output.innerHTML +="<br> Number in the String: " + numbers + "<br/>";
      </script>
   </body>
</html>

在本教程中,我们讨论了从给定字符串中提取数字的三种方法。第一种方法是使用 match() 方法和正则表达式来搜索字符串中的所有数字。第二种方法使用 replace() 方法和正则表达式从字符串中删除所有非数字字符,只留下数字。第三种方法是使用reduce()includes()方法。仔细考虑哪种方法最适合特定情况非常重要。

Atas ialah kandungan terperinci Ekstrak nombor daripada rentetan menggunakan JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam