mam
var id="ctl03_Tabs1";
Używając JavaScript, w jaki sposób mogę uzyskać ostatnie pięć znaków lub ostatni znak?
mam
var id="ctl03_Tabs1";
Używając JavaScript, w jaki sposób mogę uzyskać ostatnie pięć znaków lub ostatni znak?
Odpowiedzi:
EDYCJA: Jak zauważyli inni, użyj slice(-5)zamiast substr. Jednak zobacz .split().pop()rozwiązanie na dole tej odpowiedzi, aby uzyskać inne podejście.
Oryginalna odpowiedź:
Będziesz chciał użyć metody ciągu JavaScript w .substr()połączeniu z .lengthwłaściwością.
var id = "ctl03_Tabs1";
var lastFive = id.substr(id.length - 5); // => "Tabs1"
var lastChar = id.substr(id.length - 1); // => "1"
Pobiera to znaki zaczynające się od id.length - 5 i, ponieważ pominięto drugi argument dla .substr (), przechodzi do końca łańcucha.
Możesz także użyć tej .slice()metody, jak wskazali inni poniżej.
Jeśli chcesz po prostu znaleźć postacie po znaku podkreślenia, możesz użyć tego:
var tabId = id.split("_").pop(); // => "Tabs1"
To dzieli ciąg na tablicę podkreślenia, a następnie „wyskakuje” ostatni element z tablicy (czyli ciąg, który chcesz).
.split().pop()jest dużym hitem wydajności. Jeśli używasz tego w pętli, a wydajność ma krytyczne znaczenie, powinieneś o tym pamiętać.
.split().pop()jest jeszcze 5 milionów operacji na sekundę. To nie jest problem z wydajnością, dopóki nie jest to problem z wydajnością. ;)
slicew tym momencie jest to lepsza opcja.
slicelub substrnumer (int), najpierw przekonwertuj go na ciąg znaków. Np.myVar.toString().slice(-5)
Nie używać .substr(). .slice()Zamiast tego użyj tej metody, ponieważ jest kompatybilna z wieloma przeglądarkami (patrz IE).
const id = "ctl03_Tabs1";
console.log(id.slice(id.length - 5)); //Outputs: Tabs1
console.log(id.slice(id.length - 1)); //Outputs: 1
slice()referencja: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
_Tabs15? plasterek (-5) złapałby tylko abs15? split / pop działa znacznie lepiej dla różnych długości ...
Możesz użyć metody substr () z ujemną pozycją początkową, aby pobrać ostatnie n znaków. Na przykład dostaje to ostatnie 5:
var lastFiveChars = id.substr(-5);
Uzyskanie ostatniego znaku jest łatwe, ponieważ możesz traktować ciągi jako tablicę:
var lastChar = id[id.length - 1];
Aby uzyskać sekcję ciągu, możesz użyć funkcji substr lub funkcji substring :
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
Różnica między substri substringto, jak traktowany jest drugi (opcjonalny) parametr. W substrto liczba znaków z indeksu (pierwszy parametr). W substring, to indeks gdzie krojenie postać powinna kończyć.
Poniższy skrypt pokazuje wynik uzyskiwania ostatnich 5 znaków i ostatniego 1 znaku w ciągu za pomocą JavaScript:
var testword='ctl03_Tabs1';
var last5=testword.substr(-5); //Get 5 characters
var last1=testword.substr(-1); //Get 1 character
Wynik :
Tabs1 // Mam 5 znaków
1 // Dostałem 1 postać
Nie ma potrzeby używania substrmetody, aby uzyskać pojedynczy znak ciągu!
na przykładzie Jamona Holmgrena możemy zmienić metodę substr i po prostu określić pozycję tablicy:
var id = "ctl03_Tabs1";
var lastChar = id[id.length - 1]; // => "1"
Funkcja Substr pozwala na użycie minusa, aby uzyskać ostatni znak.
var string = "hello";
var last = string.substr(-1);
Jest bardzo elastyczny. Na przykład:
// 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"
Jeśli chcesz tylko ostatni znak lub dowolny znak w znanej pozycji, możesz po prostu wyciąć ciąg znaków jako tablicę! - ciągi są iterowalne w javascript -
Var x = "hello_world";
x[0]; //h
x[x.length-1]; //d
Jednak jeśli potrzebujesz więcej niż jednej postaci, użycie splajnu jest skuteczne
x.slice(-5); //world
Jeśli chodzi o twój przykład
"rating_element-<?php echo $id?>"
Aby wyodrębnić identyfikator, możesz łatwo użyć split + pop
Id= inputId.split('rating_element-')[1];
Spowoduje to zwrócenie identyfikatora lub niezdefiniowanie, jeśli po „rating_element” nie będzie żadnego identyfikatora :)
Zakładając, że porównasz podłańcuch z końcem innego łańcucha i użyjesz wyniku jako wartości logicznej, możesz rozszerzyć klasę String, aby to osiągnąć:
String.prototype.endsWith = function (substring) {
if(substring.length > this.length) return false;
return this.substr(this.length - substring.length) === substring;
};
Umożliwiając wykonanie następujących czynności:
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);
Znalazłem to pytanie i dzięki niektórym badaniom odkryłem, że jest to najłatwiejszy sposób na uzyskanie ostatniej postaci.
Jak inni wspominali i dodali dla kompletności, aby uzyskać ostatnie 5:
var last5 = id.substr(-5);
Ten usunie przecinek, jeśli jest to ostatni znak w ciągu.
var str = $("#ControlId").val();
if(str.substring(str.length-1)==',') {
var stringWithoutLastComma = str.substring(0,str.length-1);
}
Właściwie mam następujący problem i oto jak go rozwiązałem za pomocą powyższej odpowiedzi, ale inne podejście w wydobywaniu id z elementu wejściowego.
Dołączyłem dane wejściowe złożone w
id="rating_element-<?php echo $id?>"
Po kliknięciu tego przycisku chcę wyodrębnić tylko identyfikator (czyli liczbę) lub identyfikator php ($ id) .
Więc tutaj co robię.
$('.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
});
Ostatnie 5
var id="ctl03_Tabs1";
var res = id.charAt(id.length-5)
alert(res);
Ostatni, ubiegły, zeszły
var id="ctl03_Tabs1";
var res = id.charAt(id.length-1)
alert(res);
charAtna substr. To charAtzajmuje piąte miejsce od ostatniego .
Jestem pewien, że to zadziała ....
var string1="myfile.pdf"
var esxtenion=string1.substr(string1.length-4)
Wartość extensionbędzie".pdf"