如何检查字符串是否以JavaScript中的特定字符结束?
示例:我有一个字符串
var str = "mystring#";
我想知道字符串是否以#结尾。我怎么检查呢?
在JavaScript中有endsWith()方法吗? 我有一个解决方案,取字符串的长度,并得到最后一个字符,并检查它。
这是最好的办法还是还有别的办法?
如何检查字符串是否以JavaScript中的特定字符结束?
示例:我有一个字符串
var str = "mystring#";
我想知道字符串是否以#结尾。我怎么检查呢?
在JavaScript中有endsWith()方法吗? 我有一个解决方案,取字符串的长度,并得到最后一个字符,并检查它。
这是最好的办法还是还有别的办法?
当前回答
一种未来证明和/或防止覆盖现有原型的方法是测试检查它是否已经添加到String原型中。以下是我对非正则表达式高评级版本的看法。
if (typeof String.endsWith !== 'function') {
String.prototype.endsWith = function (suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
}
其他回答
这是另一个对我来说很有魅力的快速替代方法,使用正则表达式:
// Would be equivalent to:
// "Hello World!".endsWith("World!")
"Hello World!".match("World!$") != null
不幸的是没有。 If ("mystring#".substr(-1) === "#") {}
我刚刚了解了这个字符串库:
http://stringjs.com/
包括js文件,然后像这样使用S变量:
S('hi there').endsWith('hi there')
它也可以通过安装在NodeJS中使用:
npm install string
然后需要它作为S变量:
var S = require('string');
这个网页还提供了其他字符串库的链接,如果你不喜欢这个库的话。
if( ("mystring#").substr(-1,1) == '#' )
——或者——
if( ("mystring#").match(/#$/) )
如果你正在使用lodash:
_.endsWith('abc', 'c'); // true
如果不使用lodash,可以从它的源代码中借用。