我有一个字符串
var s1 = "a,$,b,c";
Run Code Online (Sandbox Code Playgroud)
我想检查另一个字符串是否以 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
Run Code Online (Sandbox Code Playgroud)
对于这些 false
a,$,b,c,F,W
a,$,b,c,W
a,$,b,c,$,^,\,/
Run Code Online (Sandbox Code Playgroud)
我怎么检查呢?
And*_*y E 10
if (str.slice(-s1.length) == s1) {
}
Run Code Online (Sandbox Code Playgroud)
或者,动态性更低,字面意义更强:
if (str.slice(-7) == s1) {
}
Run Code Online (Sandbox Code Playgroud)
对slice()使用负偏移设置从字符串结尾开始的起点,减去负起点 - 在这种情况下,从末尾开始7个字符(或s1.length).
将其添加到字符串原型很简单:
String.prototype.endsWith = function (str) {
return this.slice(-str.length) === str;
}
alert("w,w,a,$,b,c".endsWith(s1));
// -> true
Run Code Online (Sandbox Code Playgroud)
这将为String添加类似Java的endsWith方法:
String.prototype.endsWith = function(suffix) {
if (this.length < suffix.length)
return false;
return this.lastIndexOf(suffix) === this.length - suffix.length;
}
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
"w,w,a,$,b,c".endsWith(s1) //true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2647 次 |
| 最近记录: |