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. ;)
sliceBu noktada daha iyi bir seçenek olduğunu belirtmek için cevabımı düzenledim .
sliceVeya substrbir 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 substrve substringikinci (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
substrBir 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);
charAtiç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 extensionolacak".pdf"