JavaScript或jQuerystring以效用函数结束

找出一个string是否以某个值结束最简单的方法是什么?

你可以使用Regexps,像这样:

str.match(/value$/) 

如果string在它的末尾有'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 

常用expression

 "Hello world".match(/world$/) 

我没有运气匹配的方法,但这工作:

如果你有string,“这是我的string”。 并想看看是否以一段时间结束,这样做:

 var myString = "This is my string."; var stringCheck = "."; var foundIt = (myString.lastIndexOf(stringCheck) === myString.length - stringCheck.length) > 0; alert(foundIt); 

您可以将variablesstringCheck更改为任何要检查的string。 更好的办法就是把这个放在你自己的函数中,像这样:

 function DoesStringEndWith(myString, stringCheck) { var foundIt = (myString.lastIndexOf(stringCheck) === myString.length - stringCheck.length) > 0; return foundIt; } 

我只是扩大了@ 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开发人员networking中指出的Array.prototype.forEach方法的build议方法

ES6直接支持:

 'this is dog'.endsWith('dog') //true 

你可以做'hello world'.slice(-5)==='world' 。 适用于所有浏览器。 比正则expression式快得多。

你可以总是原型的String类,这将工作:

String.prototype.endsWith = function(str){return(this.match(str +“$”)== str)}

您可以在http://www.tek-tips.com/faqs.cfm?fid=6620find其他相关的String类的扩展;