如何检查字符串是否以JavaScript中的特定字符结束?
示例:我有一个字符串
var str = "mystring#";
我想知道字符串是否以#结尾。我怎么检查呢?
在JavaScript中有endsWith()方法吗? 我有一个解决方案,取字符串的长度,并得到最后一个字符,并检查它。
这是最好的办法还是还有别的办法?
如何检查字符串是否以JavaScript中的特定字符结束?
示例:我有一个字符串
var str = "mystring#";
我想知道字符串是否以#结尾。我怎么检查呢?
在JavaScript中有endsWith()方法吗? 我有一个解决方案,取字符串的长度,并得到最后一个字符,并检查它。
这是最好的办法还是还有别的办法?
当前回答
来吧,这是正确的结局与实现:
String.prototype.endsWith = function (s) {
return this.length >= s.length && this.substr(this.length - s.length) == s;
}
如果没有匹配,使用lastIndexOf只会创建不必要的CPU循环。
其他回答
在所有这些长时间的答案之后,我发现这段代码简单易懂!
function end(str, target) {
return str.substr(-target.length) == target;
}
如果你正在使用lodash:
_.endsWith('abc', 'c'); // true
如果不使用lodash,可以从它的源代码中借用。
@chakrit的公认答案是一个坚实的方法来做自己。但是,如果您正在寻找一个打包的解决方案,我建议您考虑一下underscore。字符串,正如@mlunoe指出的那样。使用下划线。字符串,代码将是:
function endsWithHash(str) {
return _.str.endsWith(str, '#');
}
这么多东西,这么小的问题,只是使用这个正则表达式
Var STR = "mystring#"; Var regex = /^.*#$/ 如果(regex.test (str)) { //如果后面有一个'#' }
对于coffeescript
String::endsWith = (suffix) ->
-1 != @indexOf suffix, @length - suffix.length