Bir dizenin son iki karakterini seçme


194

Rakam veya harf olsun, değişken son iki karakter seçmek gerekir.

Örneğin:

var member = "my name is Mate";

memberDeğişken dizeden son iki harfi göstermek istiyorum .

Yanıtlar:



23

Bunu deneyin, son dizini belirtmeniz gerekmediğini unutmayın substring.

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

Orijinal cevabınız muhtemelen daha uygundu. Göre MDN en substrdocs , "Microsoft'un JScript başlangıç endeksi için negatif değerler desteklemiyor."

23

EDIT: 2020: string.slice(-2)başkalarının söylediği gibi kullanın - aşağıya bakın.

şimdi 2016 sadece string.substr(-2)hile yapmalı ( alt dize değil (!))

MDN'den alınmıştır

Sözdizimi

str.substr(start[, length])

Parametreler

Başlat

Karakter çıkarmaya başlanacak yer. Negatif bir sayı verilirse strLength + start olarak kabul edilir, burada strLength dize uzunluğudır (örneğin, start -3 ise strLength - 3 olarak kabul edilir) İsteğe bağlı. Çıkartılacak karakter sayısı.

EDIT 2020

MDN diyor

Uyarı: String.prototype.substr (…) kesinlikle kullanımdan kaldırılmamış olsa da ("Web standartlarından kaldırıldı" gibi), eski bir işlev olarak kabul edilir ve mümkün olduğunda kaçınılmalıdır. Temel JavaScript dilinin bir parçası değildir ve gelecekte kaldırılabilir.


1
"Microsoft'un JScript başlangıç ​​dizini için negatif değerleri desteklemiyor. Bu özelliği JScript'te kullanmak için aşağıdaki kodu kullanabilirsiniz ..." - developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… (dilim için herhangi bir
çoklu dolguları yoktur

JScript'in tarayıcının içinde olmadığını, esas olarak Windows Script Host otomasyonu ile çalışmak için bir komut dosyası dili olduğunu (VBScript'e benzer), bu nedenle o zamanlar bu tür yöntemleri içermemesi mantıklıdır.Yeni Windows sürümleri, şifreli sözdizimi. Her neyse, yorum, JScript durumunda dilimin substr'den
George Birbilis

9

Aşağıdaki örnek slice()negatif dizinlerle kullanır

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

Deneyebilirsin

member.substr(member.length-2);

Başlangıç ​​endeksinizden member.length dosyasını kaçırdınız :)
mattytommo

Ah güzel, yansıtmak için cevabımı güncelledim, teşekkürler TJ ve Ibu :)
mattytommo

1
@TJCrowder: Başlangıç ​​konumu olarak negatif endeksin IE8 ve altı için çalışmadığından emin olabilirsiniz.

1
@amnotiam: Teşekkür ederim, bilmek çok güzel! Sadece test ve emin yeterli, yoktu IE7 veya IE8 üzerinde çalışmak (ve böylece muhtemelen IE6 çalışma olmaz). Standart modda IE9 iyiydi (ancak uyumsuz). Asla kullanmıyorum substrve şimdi keşke bazı kendini beğenmiş git bana bunun için zor bir zaman verdi (ve özellikle negatif indeksler kullanarak değil) konu bulmak isterdim - şimdi haklı olabilir! :-)
TJ Crowder


2

Bunu yapmak için jQuery değil, alt dize kullanmalısınız.

Bunun gibi bir şey deneyin:

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

W3Schools (resmi değil, ancak bazen yararlı): http://www.w3schools.com/jsref/jsref_substring.asp

Yorum yapan kişinin istediği şekilde MDN bağlantısı ekleme: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring


3
lütfen w3fools değil MSDN veya MDN gibi resmi belgelere bağlantılar sağlayın :)
jbabey

w3schools "resmi" değildir, ancak genellikle güvenilir bilgilere sahiptir. MSDN resmi, ancak IE'ye özgüdür ve Firefox, Safari vb.İle ilgisi yoktur
Matt

Bunu yayınlarken yorumun bağlantısını ekledi
Matt

1
var member = "my name is maanu";

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

alert(answer);

1
Kod ne işe yarar? Lütfen bunun ne elde ettiğine dair bir açıklama yazın.
DNKROZ

3
Adil olmak gerekirse, soru, kodun ne yapması gerektiği konusunda çok belirgindir, bu nedenle (özünde) bir kod satırından oluşan bir cevap oldukça açıklayıcıdır.
anaximander

1
kod çıkışı 'nu' olacaktır. Kelimeden son 2 karakter alın.
Biju'nun

7
Bana kod çıktısı "ismim maa" (son iki harf hariç ~ herşey) olacak gibi görünüyor, eğer doğru anladıysam soruyu sordum.
ewino
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.