如何检查字符串是否以JavaScript中的特定字符结束?

示例:我有一个字符串

var str = "mystring#";

我想知道字符串是否以#结尾。我怎么检查呢?

在JavaScript中有endsWith()方法吗? 我有一个解决方案,取字符串的长度,并得到最后一个字符,并检查它。

这是最好的办法还是还有别的办法?


当前回答

在所有这些长时间的答案之后,我发现这段代码简单易懂!

function end(str, target) {
  return str.substr(-target.length) == target;
}

其他回答

我刚刚了解了这个字符串库:

http://stringjs.com/

包括js文件,然后像这样使用S变量:

S('hi there').endsWith('hi there')

它也可以通过安装在NodeJS中使用:

npm install string

然后需要它作为S变量:

var S = require('string');

这个网页还提供了其他字符串库的链接,如果你不喜欢这个库的话。

不幸的是没有。 If ("mystring#".substr(-1) === "#") {}

@chakrit的公认答案是一个坚实的方法来做自己。但是,如果您正在寻找一个打包的解决方案,我建议您考虑一下underscore。字符串,正如@mlunoe指出的那样。使用下划线。字符串,代码将是:

function endsWithHash(str) {
  return _.str.endsWith(str, '#');
}

这么多东西,这么小的问题,只是使用这个正则表达式

Var STR = "mystring#"; Var regex = /^.*#$/ 如果(regex.test (str)) { //如果后面有一个'#' }

没有看到接近切片法。所以我就把它留在这里:

function endsWith(str, suffix) {
    return str.slice(-suffix.length) === suffix
}