Saya memiliki string dalam javascript seperti `# box2 'dan saya hanya ingin' 2 'darinya.
Mencoba:
var thestring = $(this).attr('href');
var thenum = thestring.replace( /(^.+)(\w\d+\w)(.+$)/i,'$2');
alert(thenum);
Itu masih mengembalikan # box2 dalam peringatan, bagaimana saya bisa membuatnya bekerja?
Perlu mengakomodasi untuk setiap nomor panjang yang terpasang di ujung.
javascript
string
numbers
pengguna1022585
sumber
sumber
Jawaban:
Untuk contoh khusus ini,
dalam kasus umum:
Karena jawaban ini mendapatkan popularitas karena beberapa alasan, inilah bonusnya: generator regex.
sumber
"#box2_col3".replace( /^\D+/g, '')
seharusnya ditunjukkan2
, bukan2_col3
.#box2_col3
dalam pertanyaan itu.#box2_col3
. Tapi lihat OP regex bekas (\w)(.+$)
) yang dengan jelas menunjukkan ada karakter lain setelah nomor tersebut.replace
bekerja dengan nomor terkemuka dengan menggunakantheString.replace(/^.*\D+/g, '');
:, tetapi solusi shiplu.mokadd.im lebih baik.Anda harus mencoba yang berikut ini:
hasil
sumber
parseInt(txt.match(/\d/g).join(''), 10)
" $ 20.0 ".match(/\d/g).join('')
=> "200" (hanya mengatakan)Saya pikir ungkapan reguler ini akan membantu tujuan Anda:
Dimana
txt
senar Anda.Ini pada dasarnya merobek segala sesuatu yang bukan angka.
Saya pikir Anda dapat mencapai hal yang sama dengan menggunakan ini juga:
sumber
/[^0-9]/g
+1 untuk keterbacaan. Juga digunakan dengan sebagian besar jawaban di sini: stackoverflow.com/q/1862130/1066234Coba yang berikut
string.replace(/[^0-9]/g, '');
ini : Ini akan menghapus semua karakter non-digit, hanya menyisakan digit dalam stringsumber
/[^0-9]/g
dapat diganti dengan/[^\d]/g
.Menggunakan fungsi pertandingan.
jsfiddle
sumber
Mencoba semua kombinasi yang dikutip di atas dengan Kode ini dan membuatnya berfungsi, adalah satu-satunya yang bekerja pada string itu ->
(12) 3456-7890
Hasil:
"1234567890"
Obs: saya tahu bahwa string seperti itu tidak akan berada pada attr tetapi apa pun, solusinya lebih baik, karena lebih lengkap.
sumber
str.match(/\d+/g).map(Number)
mengembalikan arrayDan ini adalah cuplikan yang mengekstraksi harga dengan mata uang dan pemformatan:
sumber
Anda dapat menggunakan metode parseInt yang bagus
itu akan mengonversi digit terkemuka ke angka
sumber
Untuk string seperti
#box2
, ini seharusnya berfungsi:jsFiddle:
sumber
Anda dapat menggunakan ekspresi reguler.
Itu akan mengingatkan 2.
sumber
Dengan Ekspresi Reguler , cara mendapatkan angka dari String, misalnya:
hasilnya
myString
adalah "24
"Anda dapat melihat contoh kode yang sedang berjalan ini di sini: http://ideone.com/iOCf5G
sumber
Anda dapat menggunakan Underscore String Library sebagai berikut
hasilnya adalah: 1
Lihat: https://github.com/epeli/underscore.string
DEMO:
http://jsfiddle.net/abdennour/Vyqtt/
Kode HTML:
Kode JS:
jika Anda memiliki akhiran sebagai berikut:
Anda dapat menggunakan demo berikutnya:
http://jsfiddle.net/abdennour/Vyqtt/1/
sumber
Ini solt. yang memeriksa tanpa data
sumber
Gunakan kode satu baris ini untuk mendapatkan angka pertama dalam sebuah string tanpa mendapatkan kesalahan:
sumber
silakan periksa di bawah javaScripts, di sana Anda hanya bisa mendapatkan nomor
keluaran:
1234567789
sumber
Anda bisa mengekstraksi angka dari string menggunakan ekspresi regex:
output: 25933473
sumber
sumber
Jawaban ini akan mencakup sebagian besar skenario. Saya dapat mengatasi situasi ini ketika pengguna mencoba menyalin menempelkan nomor telepon
Penjelasan:
join akan mengonversi dan menggabungkan data array menjadi string tunggal
sumber
}
Anda dapat melakukannya seperti itu dan kemudian memanggil fungsi di mana Anda perlu, dengan parameter.
sumber
Anda dapat melakukan fungsi seperti ini
sumber