У меня
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"
Это разбивает строку на массив в нижнем подчеркивании, а затем "выталкивает" последний элемент из массива (это строка, которую вы хотите).
Не используйте .substr()
. Вместо этого используйте метод .slice()
, поскольку он совместим с разными браузерами (см. IE).
var id = "ctl03_Tabs1";
id.slice(id.length -5); //Outputs: Tabs1
id.slice(id.length -1); //Outputs: 1
Получить последний символ легко, так как вы можете рассматривать строки как массив:
var lastChar = id[id.length - 1];
Чтобы получить фрагмент строки, вы можете использовать функцию substr или функцию подстроки :
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
это индекс того, где должна заканчиваться нарезка символов.
Вы можете использовать метод substr() с отрицательной исходной позицией для извлечения последних n символов. Например, это получает последние 5:
var lastFiveChars = id.substr(-5);
После script показан результат для получения последних 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
для получения единственного char строки!
на примере Jamon Holmgren мы можем изменить метод substr и просто указать положение массива:
var id = "ctl03_Tabs1";
var lastChar = id[id.length - 1]; // => "1"
Предполагая, что вы сравните подстроку с концом другой строки и используете результат как логическое, вы можете расширить класс 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
Если вы просто хотите, чтобы последний символ или какой-либо символ находились в известной позиции, вы можете просто передать строку в виде массива! - строки итерации в 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];
Это вернет идентификатор или undefined, если после "rating_element" идентификатор не был указан, :)
Одним из способов было бы использовать slice
, например:
var id="ctl03_Tabs1";
var temp=id.slice(-5);
поэтому значение temp
будет "Tabs1"
.
Этот будет удалять запятую, если это последний символ в строке.
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
});
var id="ctl03_Tabs1";
var res = id.charAt(id.length-1);
Я нашел этот вопрос, и в ходе некоторых исследований я обнаружил, что это самый простой способ получить последнего персонажа.
Как уже упоминалось и добавлено для полноты, чтобы получить последние 5:
var last5 = id.substr(-5);
Функция 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"
Последние 5
var id="ctl03_Tabs1";
var res = id.charAt(id.length-5)
alert(res);
Я уверен, что это будет работать....
var string1="myfile.pdf"
var esxtenion=string1.substr(string1.length-4)
Значение extension
будет ".pdf"