确认字符串的结束(变化结束长度)

此任务要求您编写一个带有两个参数的函数。 第一个参数是一个名为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)

下一篇: How to implement a "EndsWith" on a string?