Я маю
var id="ctl03_Tabs1";
Як за допомогою JavaScript я можу отримати останні п'ять символів або останнього символу?
Я маю
var id="ctl03_Tabs1";
Як за допомогою JavaScript я можу отримати останні п'ять символів або останнього символу?
Відповіді:
РЕДАКТУВАТИ: Як вже вказували інші, використовуйте slice(-5)
замість substr
. Однак див. .split().pop()
Рішення внизу цієї відповіді для іншого підходу.
Оригінальна відповідь:
Ви хочете використовувати метод рядка Javascript у .substr()
поєднанні із .length
властивістю.
var id = "ctl03_Tabs1";
var lastFive = id.substr(id.length - 5); // => "Tabs1"
var lastChar = id.substr(id.length - 1); // => "1"
Це отримує символи, починаючи з id.length - 5 і, оскільки другий аргумент для .substr () опущено, продовжується до кінця рядка.
Ви також можете використовувати .slice()
метод, як показали інші нижче.
Якщо ви просто хочете знайти символи після підкреслення, ви можете скористатися цим:
var tabId = id.split("_").pop(); // => "Tabs1"
Це розділяє рядок на масив на підкресленні, а потім "спливає" останній елемент із масиву (який є рядком, який ви хочете).
.split().pop()
є великим хітом на продуктивність. Якщо це щось, що ви використовуєте в циклі, і продуктивність є критичною, вам потрібно мати на увазі це.
.split().pop()
ще 5 мільйонів операцій в секунду. Це не проблема продуктивності, поки це не проблема продуктивності. ;)
slice
є кращим варіантом на даний момент.
slice
або substr
на число (int), перетворіть його спочатку в рядок. Напр.myVar.toString().slice(-5)
Не використовуйте .substr()
. .slice()
Замість цього скористайтеся методом, оскільки він сумісний з браузером (див. IE)
const id = "ctl03_Tabs1";
console.log(id.slice(id.length - 5)); //Outputs: Tabs1
console.log(id.slice(id.length - 1)); //Outputs: 1
slice()
довідка: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
_Tabs15
? скибочку (-5) тільки захопили б abs15
? спліт / поп працює набагато краще для різної довжини ...
Ви можете використовувати Для отримання останніх n символів метод substr () з негативним вихідним положенням. Наприклад, це отримує останні 5:
var lastFiveChars = id.substr(-5);
Отримати останній символ просто, оскільки ви можете трактувати рядки як масив:
var lastChar = id[id.length - 1];
Щоб отримати розділ рядка, ви можете використовувати функцію substr або функцію 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
Різниця між substr
та substring
полягає в тому, як обробляється другий (необов'язковий) параметр. В substr
, це кількість символів з індексу (перший параметр). В substring
індексі, де має закінчуватися нарізка символів.
Наступний скрипт показує результат для отримання останніх 5 символів та останнього 1 символу в рядку за допомогою JavaScript:
var testword='ctl03_Tabs1';
var last5=testword.substr(-5); //Get 5 characters
var last1=testword.substr(-1); //Get 1 character
Вихід:
Tabs1 // Отримав 5 символів
1 // Отримав 1 символ
Не потрібно користуватися substr
метод для отримання єдиного символу рядка!
беручи приклад Джеймона Холмгрена, ми можемо змінити метод substr і просто вказати положення масиву:
var id = "ctl03_Tabs1";
var lastChar = id[id.length - 1]; // => "1"
Функція Substr дозволяє використовувати мінус для отримання останнього символу.
var string = "hello";
var last = string.substr(-1);
Це дуже гнучко. Наприклад:
// 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"
Якщо ви просто хочете останнього символу або будь-якого символу в позиції знань, ви можете просто знайти рядок як масив! - рядки ітераторабельні в JavaScript -
Var x = "hello_world";
x[0]; //h
x[x.length-1]; //d
Однак якщо вам потрібно більше, ніж один символ, то використання сплайсу є ефективним
x.slice(-5); //world
Щодо вашого прикладу
"rating_element-<?php echo $id?>"
Для вилучення ідентифікатора ви можете легко використовувати split + pop
Id= inputId.split('rating_element-')[1];
Це поверне ідентифікатор або невизначений, якщо після "rating_element" не було жодного ідентифікатора :)
Якщо припустити, що ви порівнюєте підрядку з кінцем іншого рядка і використовуєте результат як булевий, ви можете розширити клас String для цього:
String.prototype.endsWith = function (substring) {
if(substring.length > this.length) return false;
return this.substr(this.length - substring.length) === substring;
};
Дозволяє вам зробити наступне:
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);
Я знайшов це питання і завдяки деяким дослідженням я виявив, що це найпростіший спосіб отримати останнього персонажа.
Як згадували інші та додали для повноти, щоб отримати останні 5:
var last5 = id.substr(-5);
Ця команда видалить кому, якщо це останній символ у рядку ..
var str = $("#ControlId").val();
if(str.substring(str.length-1)==',') {
var stringWithoutLastComma = str.substring(0,str.length-1);
}
Насправді у мене є наступна проблема, і це, як я вирішив її за допомогою наведеної вище відповіді, але різний підхід у витягуванні ідентифікаційної форми є вхідним елементом.
Я додав вхід, поданий до
id="rating_element-<?php echo $id?>"
І, коли ця кнопка натиснута, я хочу витягнути лише ідентифікатор (який є номером) або php-ідентифікатор ($ id) .
Так ось що я роблю.
$('.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
});
Останні 5
var id="ctl03_Tabs1";
var res = id.charAt(id.length-5)
alert(res);
Остання
var id="ctl03_Tabs1";
var res = id.charAt(id.length-1)
alert(res);
charAt
на substr
. Це charAt
отримує п’яту з останніх .
Я впевнений, що це спрацює ....
var string1="myfile.pdf"
var esxtenion=string1.substr(string1.length-4)
Значення extension
буде".pdf"