Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengekstrak Nombor daripada Rentetan dalam JavaScript?

Bagaimana untuk Mengekstrak Nombor daripada Rentetan dalam JavaScript?

DDD
DDDasal
2024-12-06 10:45:11793semak imbas

How to Extract Numbers from Strings in JavaScript?

Mengekstrak Nombor daripada Rentetan dalam JavaScript: Panduan Komprehensif

Apabila bekerja dengan rentetan dalam JavaScript, selalunya perlu mengekstrak nombor tertentu daripadanya. Ini boleh timbul dalam pelbagai senario, seperti menghuraikan ID daripada elemen DOM atau mengekstrak data berangka daripada fail teks.

Contoh Khusus: Pengekstrakan Nombor daripada Rentetan

Pertimbangkan rentetan seperti "#box2" di mana kita perlu mengekstrak nombor 2 sahaja. Menggunakan kod berikut coretan:

var thestring = $(this).attr('href');
var thenum = thestring.replace(/(^.+)(\w\d+\w)(.+$)/i, '');

masih akan mengembalikan "#box2" dalam amaran. Sebabnya ialah ungkapan biasa yang digunakan tidak menangkap aksara bukan digit dengan betul sebelum dan selepas nombor.

Penyelesaian untuk Contoh Khusus

Untuk menyelesaikan isu ini untuk contoh khusus "#box2", kita boleh menggunakan kod berikut:

var thenum = thestring.replace(/^\D+/g, ''); // Replace all leading non-digits with nothing

Ungkapan biasa ini mengalih keluar semua aksara bukan digit terkemuka daripada rentetan, mengasingkan nombor dengan berkesan.

Penyelesaian Umum Menggunakan Regex

Untuk rentetan yang lebih kompleks, pendekatan yang lebih umum ialah menggunakan ungkapan biasa yang hanya sepadan dengan nombor:

thenum = "foo3bar5".match(/\d+/)[0] // "3"

Ungkapan ini akan mengembalikan set pertama digit berturut-turut dalam rentetan.

Penjana Regex

Untuk ungkapan biasa yang lebih kompleks, anda boleh menggunakan alat penjana regex, seperti yang disediakan di bawah:

`


fungsi getre(str, num) {
jika (str === num) kembalikan "cubaan bagus";
var res = [

[/^\D+/g, /\D+$/g], // Remove leading/trailing non-digits
[/^\D+|\D+$/g], // Remove both leading and trailing non-digits
[/\D+/g], // Remove all non-digits
[/\D.*/g], // Remove all non-digits from the end
/.*\D/g, // Remove all non-digits from the start
/^\D+|\D.*$/g, // Remove non-digits from both ends
/.*\D(?=\d)|\D+$/g, // Remove non-digits followed by digits or from the end

];
untuk (var i = 0; i < ; res.length; i )

if (str.replace(res[i], "") === num)
  return 'num = str.replace(/' + res[i].source + '/g, "")';

kembali "no idea";
}

kemas kini fungsi() {
$ = function(x) { return document.getElementById(x) };
var re = getre($('str' ).value, $('num').value);
$('re').innerHTML = "Numex bercakap: " semula "";
}

`:

Alat ini menyediakan antara muka pengguna di mana anda boleh memasukkan rentetan asal anda dan nombor yang dikehendaki untuk ekstrak. Ia kemudiannya akan memaparkan kod JavaScript yang diperlukan untuk mengekstrak nombor.

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Nombor daripada Rentetan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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