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:
`
[/^\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:
}
`:
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!