找出字符串是否以某个特定值结尾的最简单方法是什么?
Answers:
您可以使用Regexps,如下所示:
str.match(/value$/)
如果字符串末尾带有“值”($),则返回true。
从prototypejs被盗:
String.prototype.endsWith = function(pattern) {
var d = this.length - pattern.length;
return d >= 0 && this.lastIndexOf(pattern) === d;
};
'slaughter'.endsWith('laughter');
// -> true
我对比赛的方法不走运,但这行得通:
如果您有字符串,“这是我的字符串”。并想查看它是否以句点结尾,请执行以下操作:
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;
}
ES6直接支持此功能:
'this is dog'.endsWith('dog') //true
我只是在扩展@ luca-matteis的内容,但是要解决注释中指出的问题,应将代码包装起来以确保您不会覆盖本机实现。
if ( !String.prototype.endsWith ) {
String.prototype.endsWith = function(pattern) {
var d = this.length - pattern.length;
return d >= 0 && this.lastIndexOf(pattern) === d;
};
}
这是mozilla开发人员网络中指出的Array.prototype.forEach方法的建议方法
您可以始终原型String类,这将起作用:
String.prototype.endsWith = function(str){返回(this.match(str +“ $”)== str)}
您可以在http://www.tek-tips.com/faqs.cfm?fid=6620中找到String类的其他相关扩展。
match返回数组而失败。它必须是this.match(str+"$")[0]===str(如果match找不到任何东西,可能会失败-实际上没有对它进行错误测试)。