я имею
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
? сплит / поп работает намного лучше для разной длины ...
Вы можете использовать метод substr () с отрицательной начальной позицией, чтобы получить последние n символов. Например, это получает последние 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
заключается в том, как обрабатывается второй (необязательный) параметр. In 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 символ
Проверьте функцию подстроки .
Чтобы получить последний символ:
id.substring(id.length - 1, id.length);
Нет необходимости использовать substr
метод, чтобы получить один символ строки!
на примере Jamon Holmgren мы можем изменить метод 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 ($ 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"