Sahibim
var id="ctl03_Tabs1";
JavaScript kullanarak, son beş karakteri veya son karakteri nasıl edinebilirim?
Sahibim
var id="ctl03_Tabs1";
JavaScript kullanarak, son beş karakteri veya son karakteri nasıl edinebilirim?
Yanıtlar:
EDIT: Diğerleri belirttiği gibi, slice(-5)
yerine kullanın substr
. Ancak, .split().pop()
başka bir yaklaşım için bu cevabın altındaki çözüme bakınız .
Orijinal cevap:
Javascript dize yöntemini kullanmak isteyeceksiniz .substr()
kombine .length
özelliği.
var id = "ctl03_Tabs1";
var lastFive = id.substr(id.length - 5); // => "Tabs1"
var lastChar = id.substr(id.length - 1); // => "1"
Bu, id.length - 5 ile başlayan karakterleri alır ve .substr () için ikinci argüman atlandığı için dizenin sonuna kadar devam eder.
.slice()
Yöntemi, aşağıda belirtildiği gibi kullanabilirsiniz .
Alt çizgiden sonra karakterleri bulmak istiyorsanız, bunu kullanabilirsiniz:
var tabId = id.split("_").pop(); // => "Tabs1"
Bu, dizeyi alt çizgideki bir diziye böler ve sonra dizinin son öğesini (istediğiniz dizgi) "açar".
.split().pop()
hala saniyede 5 milyon işlem var. Bir performans sorunu olana kadar bu bir performans sorunu değildir. ;)
slice
Bu noktada daha iyi bir seçenek olduğunu belirtmek için cevabımı düzenledim .
slice
Veya substr
bir sayıya (int) uygulamaya çalışıyorsanız , önce dizeye dönüştürün. ÖrnmyVar.toString().slice(-5)
Kullanma .substr()
. .slice()
Bunun yerine, çapraz tarayıcı uyumlu olduğu için yöntemi kullanın (bkz. IE).
const id = "ctl03_Tabs1";
console.log(id.slice(id.length - 5)); //Outputs: Tabs1
console.log(id.slice(id.length - 1)); //Outputs: 1
slice()
başvuru: developer.mozilla.org/tr-TR/docs/Web/JavaScript/Reference/…
_Tabs15
? dilim (-5) sadece kapmak abs15
? split / pop çeşitli uzunluklar için çok daha iyi çalışıyor ...
Sen kullanabilirsiniz substr () yöntemini son n karakterleri almak için bir negatif başlangıç pozisyonuna sahip. Örneğin, bu son 5'i alır:
var lastFiveChars = id.substr(-5);
Dizeleri dizi olarak ele alabileceğiniz için son karakteri elde etmek kolaydır:
var lastChar = id[id.length - 1];
Bir dize bir bölümünü almak için, kullanabilir substr fonksiyonu veya alt dize işlevi:
id.substr(id.length - 1); //get the last character
id.substr(2); //get the characters from the 3rd character on
id.substr(2, 1); //get the 3rd character
id.substr(2, 2); //get the 3rd and 4th characters
Arasındaki fark substr
ve substring
ikinci (isteğe bağlı) parametresi işlenir nasıl. İçinde substr
, dizindeki karakterlerin miktarıdır (ilk parametre). İçinde substring
, karakter dilimlemenin nerede bitmesi gerektiğidir.
Aşağıdaki komut dosyası, JavaScript kullanarak bir dizede son 5 ve son 1 karakterin sonucunu gösterir:
var testword='ctl03_Tabs1';
var last5=testword.substr(-5); //Get 5 characters
var last1=testword.substr(-1); //Get 1 character
Çıktı :
Sekmeler1 // 5 karakter var
1 // 1 karakter var
substr
Bir dizenin tek bir karakterini elde etmek için yöntem kullanmaya gerek yoktur !
Jamon Holmgren örneğini alarak substr yöntemini değiştirebilir ve sadece dizi konumunu belirleyebiliriz:
var id = "ctl03_Tabs1";
var lastChar = id[id.length - 1]; // => "1"
Substr işlevi son karakteri almak için eksi kullanmanızı sağlar.
var string = "hello";
var last = string.substr(-1);
Çok esnektir. Örneğin:
// Get 2 characters, 1 character from end
// The first part says how many characters
// to go back and the second says how many
// to go forward. If you don't say how many
// to go forward it will include everything
var string = "hello!";
var lasttwo = string.substr(-3,2);
// = "lo"
Eğer sadece son karakteri veya herhangi bir karakteri bilmek pozisyonda istiyorsanız sadece dizi olarak dizi trat! - dizeler javascriptte yinelenebilir -
Var x = "hello_world";
x[0]; //h
x[x.length-1]; //d
Eğer sadece bir karakterden fazlasına ihtiyacınız varsa splice kullanmak etkilidir
x.slice(-5); //world
Örneğinizle ilgili olarak
"rating_element-<?php echo $id?>"
Kimliği ayıklamak için split + pop tuşlarını kolayca kullanabilirsiniz
Id= inputId.split('rating_element-')[1];
Bu, kimliği döndürür veya 'rating_element' öğesinden sonra hiçbir kimlik yoksa tanımsızdır :)
Alt dizeyi başka bir dizenin sonuna göre karşılaştıracağınızı ve sonucu bir boole olarak kullandığınızı varsayarak, bunu gerçekleştirmek için String sınıfını genişletebilirsiniz:
String.prototype.endsWith = function (substring) {
if(substring.length > this.length) return false;
return this.substr(this.length - substring.length) === substring;
};
Aşağıdakileri yapmanızı sağlar:
var aSentenceToPonder = "This sentence ends with toad";
var frogString = "frog";
var toadString = "toad";
aSentenceToPonder.endsWith(frogString) // false
aSentenceToPonder.endsWith(toadString) // true
var id="ctl03_Tabs1";
var res = id.charAt(id.length-1);
Bu soruyu buldum ve bazı araştırmalarla bunu son karakteri elde etmenin en kolay yolu olarak buldum.
Diğerlerinin de belirttiği ve son 5'i almak için tamlık için eklediği gibi:
var last5 = id.substr(-5);
Dizedeki son karakter ise virgül kaldırılır.
var str = $("#ControlId").val();
if(str.substring(str.length-1)==',') {
var stringWithoutLastComma = str.substring(0,str.length-1);
}
Aslında aşağıdaki sorun var ve bu nasıl yukarıdaki cevap yardımı ile çözüldü ama id formu bir ayıklama ayıklamak farklı bir yaklaşım.
İle dosyalanmış bir girdi ekledim
id="rating_element-<?php echo $id?>"
Ve, bu düğme tıklandığında sadece id (sayı) veya php ID ($ id) ayıklamak istiyorum .
İşte burada ne yapıyorum.
$('.rating').on('rating.change', function() {
alert($(this).val());
// console.log(this.id);
var static_id_text=("rating_element-").length;
var product_id = this.id.slice(static_id_text); //get the length in order to deduct from the whole string
console.log(product_id );//outputs the last id appended
});
Son 5
var id="ctl03_Tabs1";
var res = id.charAt(id.length-5)
alert(res);
Son
var id="ctl03_Tabs1";
var res = id.charAt(id.length-1)
alert(res);
charAt
için substr
. Bu sondan beşinciyicharAt
alır .
Eminim bu işe yarar ....
var string1="myfile.pdf"
var esxtenion=string1.substr(string1.length-4)
Değeri extension
olacak".pdf"