确认字符串的结束(变化结束长度)
此任务要求您编写一个带有两个参数的函数。 第一个参数是一个名为str
的字符串,第二个参数是我们目标结束命名target
的字符串。 任务是验证str
的结尾是否与目标结尾相同。 说明指示使用.substr()
方法将结尾与目标进行比较。 我.substr
的问题是.substr
方法会有多个起点和长度参数,因为目标结尾可能是可变长度的。 看看我试图解决这个问题,请指导我走正确的道路。
function end(str, target) {
var start = str.length - (target.length - 1);
if(str.substr(start, str.length) == target){
return true;
} else {
return false;
}
}
end('Bastian', 'n');
编辑
正如@torazaburo所说。 正确答案是:
function end(str, target) {
return target === str.substr(str.length - target.length);
}
由于该字符串不以空字符串结束
原始答案
function end(str, target) {
return target.length > 0 && target === str.substr(str.length - target.length);
}
http://jsfiddle.net/tqsx0gLa/2/
来自评论:此代码使用&&
运算符设置逻辑比较。 对于有效的target
输入,左侧target.length > 0
应始终返回true
。 左侧的设置目标等于从位于str.length
(位于str
最右侧的位置)的位置开始并且减去target
长度(以达到我们的子串的起始点)处的substr
。 不需要输入终点,因为子字符串将运行到str
的结尾。
这是一个简单的解决方案:
function confirmEnding(str, target) {
var result;
//getting the last string depend on target length
var last = str.substring(str.length - target.length);
//checking the last string with the target
if(last === target){
result = true;
} else {
result = false;
}
return result;
}
function end(str, target) {
var start = str.length - target.length;
if(str.substr(start) == target){
return true;
}
else {
return false;
}
}
你也可以试试这个代码。
链接地址: http://www.djcxy.com/p/83901.html上一篇: Confirm the Ending of an String (Varying Ending Length)