Cara memilih dua karakter terakhir dari sebuah string


194

Saya perlu memilih dua karakter terakhir dari variabel, apakah itu angka atau huruf.

Sebagai contoh:

var member = "my name is Mate";

Saya ingin menunjukkan dua huruf terakhir dari string dalam membervariabel.

Jawaban:



23

Coba ini, perhatikan bahwa Anda tidak perlu menentukan indeks akhir di substring.

var characters = member.substr(member.length -2);

Jawaban asli Anda mungkin lebih tepat. Menurut dokumen MDNsubstr , "Microsoft's JScript tidak mendukung nilai negatif untuk indeks awal."

23

EDIT: 2020: gunakan string.slice(-2)seperti kata orang lain - lihat di bawah.

sekarang 2016 string.substr(-2)seharusnya melakukan trik (bukan substring (!))

diambil dari MDN

Sintaksis

str.substr(start[, length])

Parameter

Mulailah

Lokasi untuk mulai mengekstraksi karakter. Jika angka negatif diberikan, itu diperlakukan sebagai strLength + start di mana strLength adalah panjang string (misalnya, jika mulai adalah -3 itu diperlakukan sebagai strLength - 3.) panjang Opsional. Jumlah karakter untuk diekstraksi.

EDIT 2020

Kata MDN

Peringatan: Meskipun String.prototype.substr (...) tidak sepenuhnya ditinggalkan (seperti dalam "dihapus dari standar Web"), itu dianggap sebagai fungsi lawas dan harus dihindari jika memungkinkan. Ini bukan bagian dari bahasa inti JavaScript dan dapat dihapus di masa depan.


1
"JScript Microsoft tidak mendukung nilai negatif untuk indeks awal. Untuk menggunakan fitur ini dalam JScript, Anda dapat menggunakan kode berikut ..." - developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… (sedangkan untuk slice mereka tidak memiliki polyfill: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… )
George Birbilis

perhatikan bahwa JScript tidak ada di dalam browser, ini adalah bahasa scripting untuk bekerja dengan otomatisasi Windows Script Host terutama (mirip dengan VBScript), jadi logis bahwa pada saat itu tidak termasuk metode seperti itu. Versi Windows yang lebih baru mempromosikan PowerShell, dengan sintaksis samar. Ngomong-ngomong komentar tentang slice menjadi kandidat yang lebih baik daripada substr dalam kasus JScript, karena mendukung indeks negatif docs.microsoft.com/en-us/previous-versions/windows/…
George Birbilis

9

Contoh berikut digunakan slice()dengan indeks negatif

var str = 'my name is maanu.';
console.log(str.slice(-3));     // returns 'nu.' last two
console.log(str.slice(3, -7)); // returns 'name is'
console.log(str.slice(0, -1));  // returns 'my name is maanu'


5

Anda dapat mencoba

member.substr(member.length-2);

Anda melewatkan anggota. Panjang dari indeks awal Anda :)
mattytommo

Ah keren, saya sudah memperbarui jawaban saya untuk mencerminkan, terima kasih TJ dan Ibu :)
mattytommo

1
@TJCrowder: Cukup yakin indeks negatif sebagai posisi awal tidak berfungsi untuk IE8 dan lebih rendah.

1
@amnotiam: Terima kasih, sangat senang tahu! Saya baru saja menguji , dan tentu saja, tidak bekerja pada IE7 atau IE8 (dan mungkin tidak akan bekerja pada IE6). IE9 dalam mode standar baik-baik saja (tetapi tidak kompatibel). Saya tidak pernah menggunakan substr, dan sekarang saya berharap saya dapat menemukan utas di mana beberapa sombong git memberi saya kesulitan untuk itu (dan khususnya tidak menggunakan indeks negatif) - Saya sekarang dapat membenarkannya! :-)
TJ Crowder


2

Anda harus menggunakan substring, bukan jQuery, untuk melakukan ini.

Coba sesuatu seperti ini:

member.substring(member.length - 2, member.length)

W3Schools (tidak resmi, tetapi kadang-kadang bermanfaat): http://www.w3schools.com/jsref/jsref_substring.asp

Menambahkan tautan MDN seperti yang diminta oleh komentator: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring


3
berikan tautan ke dokumentasi resmi seperti MSDN atau MDN, bukan w3fools :)
jbabey

w3schools bukan "resmi" tetapi umumnya memiliki informasi yang dapat diandalkan. MSDN resmi, tetapi khusus IE dan tidak ada hubungannya dengan Firefox, Safari, dll.
Matt

menambahkan tautan ke komentar ketika Anda memposting ini
Matt

1
var member = "my name is maanu";

var answer=member.substring(0,member.length - 2);

alert(answer);

1
Apa yang dilakukan kode? Tolong tuliskan penjelasan tentang apa yang mencapainya.
DNKROZ

3
Agar adil, pertanyaannya sangat spesifik tentang apa yang perlu dilakukan kode, sehingga jawaban yang terdiri dari (pada dasarnya) satu baris kode cukup jelas.
anaximander

1
output kode akan menjadi 'nu'. Ambil 2 charecter terakhir dari kata.
Biju s

7
Menurut saya output kode akan menjadi "nama saya maa" (semuanya ~ kecuali ~ dua huruf terakhir), yang bukan pertanyaannya, jika saya memahaminya dengan benar.
ewino
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.