我有一个字符串如何在字符串上实现“EndsWith”?
var s1 = "a,$,b,c";
我要检查,如果另一个字符串s1
因此结束,如果我把这些字符串它必须返回true
w,w,a,$,b,c
^,^,^,$,@,#,%,$,$,a,$,b,c
a,w,e,q,r,f,z,x,c,v,z,$,W,a,$,b,c
而对于这些false
a,$,b,c,F,W
a,$,b,c,W
a,$,b,c,$,^,\,/
我该如何检查?
我有一个字符串如何在字符串上实现“EndsWith”?
var s1 = "a,$,b,c";
我要检查,如果另一个字符串s1
因此结束,如果我把这些字符串它必须返回true
w,w,a,$,b,c
^,^,^,$,@,#,%,$,$,a,$,b,c
a,w,e,q,r,f,z,x,c,v,z,$,W,a,$,b,c
而对于这些false
a,$,b,c,F,W
a,$,b,c,W
a,$,b,c,$,^,\,/
我该如何检查?
if (str.slice(-s1.length) == s1) {
}
,或较少动态和更字面上:
if (str.slice(-7) == s1) {
}
使用)负为片(偏移设定从字符串的结尾的起点,减去负的开局 - 在这个从最后7个字符(或s1.length)。
添加此字符串原型很简单:
String.prototype.endsWith = function (str) {
return this.slice(-str.length) === str;
}
alert("w,w,a,$,b,c".endsWith(s1));
// -> true
您应该在原型增强中使用标识比较'==='。 – Tomalak 2010-09-07 17:07:49
@Tomalak:完成了,我想如果你传入一个数组作为str参数,这会有所作为。 – 2010-09-07 17:12:37
获取字符串S1的长度,然后得到的测试字符串的最后一位数字的字符串,看看他们是相同。
像这样:
if (s2.substring(s2.length - s1.length) == s1)
您测试了哪个浏览器? ''abc“.substring(-1)'不适用于Firefox – BrunoLM 2010-09-07 17:11:39
@BurnoLM我想我已经习惯了PHP的方式,我的更新应该可以工作。 – 2010-09-07 17:29:29
这将添加一个Java类的endsWith方法字符串:
String.prototype.endsWith = function(suffix) {
if (this.length < suffix.length)
return false;
return this.lastIndexOf(suffix) === this.length - suffix.length;
}
然后,您可以做:
"w,w,a,$,b,c".endsWith(s1) //true
+1我会将'this.length-suffix.length'存储在一个变量'l'中,然后返回一行:'return l> = 0 && this.lastIndexOf(suffix)=== l;'' – Tomalak 2010-09-07 17:04:32
请访问http://计算器.com/questions/280634/endswith-in-javascript – 2010-09-07 16:52:58