Каков самый простой способ выяснить, заканчивается ли строка с определенным значением?
Строка JavaScript или jQuery заканчивается функцией утилиты
Ответ 1
вы можете использовать Regexps, например:
str.match(/value$/)
который вернет true, если строка имеет значение в конце ($).
Ответ 2
Украден у прототипов:
String.prototype.endsWith = function(pattern) {
var d = this.length - pattern.length;
return d >= 0 && this.lastIndexOf(pattern) === d;
};
'slaughter'.endsWith('laughter');
// -> true
Ответ 3
Регулярные выражения
"Hello world".match(/world$/)
Ответ 4
Мне не повезло с совпадением, но это сработало:
Если у вас есть строка, "Это моя строка". и хотел бы посмотреть, заканчивается ли это с периодом, сделайте следующее:
var myString = "This is my string.";
var stringCheck = ".";
var foundIt = (myString.lastIndexOf(stringCheck) === myString.length - stringCheck.length) > 0;
alert(foundIt);
Вы можете изменить переменную stringCheck на любую строку для проверки. Лучше всего было бы бросить это в свою собственную функцию следующим образом:
function DoesStringEndWith(myString, stringCheck)
{
var foundIt = (myString.lastIndexOf(stringCheck) === myString.length - stringCheck.length) > 0;
return foundIt;
}
Ответ 5
Я просто расширяю то, что опубликовал @luca-matteis, но для решения проблем, указанных в комментариях, код должен быть обернут, чтобы убедиться, что вы не перезаписываете собственную реализацию.
if ( !String.prototype.endsWith ) {
String.prototype.endsWith = function(pattern) {
var d = this.length - pattern.length;
return d >= 0 && this.lastIndexOf(pattern) === d;
};
}
Это предложенный метод для метода Array.prototype.forEach, указанный в сети разработчиков mozilla
Ответ 6
ES6 поддерживает это непосредственно:
'this is dog'.endsWith('dog') //true
Ответ 7
Вы можете сделать 'hello world'.slice(-5)==='world'
. Работает во всех браузерах. Гораздо быстрее, чем регулярное выражение.
Ответ 8
Вы всегда можете прототипировать класс String, это будет работать:
String.prototype.endsWith = function (str) {return (this.match(str + "$" ) == str)}
Вы можете найти другие связанные расширения для класса String в http://www.tek-tips.com/faqs.cfm?fid=6620