Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript查找并匹配字符串的最后一项_Javascript_String_Substr - Fatal编程技术网

Javascript查找并匹配字符串的最后一项

Javascript查找并匹配字符串的最后一项,javascript,string,substr,Javascript,String,Substr,我正在尝试编写这个函数来检查字符串(第一个参数,str)是否以给定的目标字符串(第二个参数,target)结尾。我使用过这个代码,但似乎不起作用。我如何调整它 功能确认(str,目标){ var last=str.substring(-1); var last2=目标子字符串(-1); if(last==last2)返回true; 否则如果(last!==last2)返回false; } 确认(“步行上水和开发规范软件 如果两者都已冻结,则很容易修改(“规格”)/*应返回“false”。 确认

我正在尝试编写这个函数来检查字符串(第一个参数,str)是否以给定的目标字符串(第二个参数,target)结尾。我使用过这个代码,但似乎不起作用。我如何调整它

功能确认(str,目标){
var last=str.substring(-1);
var last2=目标子字符串(-1);
if(last==last2)返回true;
否则如果(last!==last2)返回false;
}
确认(“步行上水和开发规范软件
如果两者都已冻结,则很容易修改(“规格”)/*应返回“false”。
确认(“Bastian”、“n”)应返回true。
确认(“Connor”、“n”)应返回false。
确认(“水上行走”和根据规范开发软件
如果两者都被冻结,则“规范”应返回false。
确认(“他必须给我一个新名字”,“名字”)应该返回true。
确认(“打开芝麻”、“相同”)应返回true。
确认(“打开芝麻”、“笔”)应返回false。
如果你想拯救我们的世界,你必须快点,我们不知道
我们还能承受多久“无物”、“山”)应该回归
错。

不要使用内置方法.endsWith()来解决此问题。*/
您可以使用此函数:

function confirmEnding(a, b) {
    var l1 = a[a.length - 1];
    var l2 = b[b.length - 1];

    return l1 === l2;
}

您可以使用此功能:

function confirmEnding(a, b) {
    var l1 = a[a.length - 1];
    var l2 = b[b.length - 1];

    return l1 === l2;
}

您的错误是正在使用子字符串。尝试
str.substr
而不是
substring

您的错误是您正在使用substring。尝试
str.substr
而不是
substring

为什么要检查最后的单词是否相同,以便:

function confirmEnding (str, target) {
   return  str.substr(-1) == target.substr(-1);  
 }

console.log(confirmEnding("Walking on water and developing software from a specification are easy if both are frozen", "specification"));
const confirminding=(str,target)=>new RegExp(`${target}$`',).test(str)
log(确认(“在水上行走和根据规范开发软件很容易,如果两者都被冻结”,“规范”))
console.log(确认(“Bastian”,“n”))
console.log(确认(“Connor”,“n”))
log(确认(“在水上行走和根据规范开发软件很容易,如果两者都被冻结”,“规范”))
log(确认(“他必须给我一个新名字”,“名字”))
日志(确认(“打开芝麻”,“相同”))
console.log(确认(“打开芝麻”、“笔”))

console.log(确认(“如果你想拯救我们的世界,你必须快点。我们不知道我们还能忍受多久,什么都没有”,“山”))
为什么要检查最后的话是否相同,所以:

const confirminding=(str,target)=>new RegExp(`${target}$`',).test(str)
log(确认(“在水上行走和根据规范开发软件很容易,如果两者都被冻结”,“规范”))
console.log(确认(“Bastian”,“n”))
console.log(确认(“Connor”,“n”))
log(确认(“在水上行走和根据规范开发软件很容易,如果两者都被冻结”,“规范”))
log(确认(“他必须给我一个新名字”,“名字”))
日志(确认(“打开芝麻”,“相同”))
console.log(确认(“打开芝麻”、“笔”))
console.log(确认(“如果你想拯救我们的世界,你必须快点。我们不知道我们还能承受多久的虚无”,“大山”)
const a=“如果两者都被冻结,那么在水上行走和根据规范开发软件都很容易”,
b=“规范”;
//你的职能
常量equalLastLetter=(a,b)=>a.substr(-1)==b.substr(-1);
console.log(equalLastLetter(a,b))
const a=“如果两者都被冻结,那么在水上行走和根据规范开发软件都很容易”,
b=“规范”;
//你的职能
常量equalLastLetter=(a,b)=>a.substr(-1)==b.substr(-1);
console.log(equallastleter(a,b))
这个怎么样

function confirmEnding (str, target) {
    var last  = str.charAt(str.length-1);
    var last2 = target.charAt(target.length-1);
    return (last == last2);
}
这个怎么样

function confirmEnding (str, target) {
    var last  = str.charAt(str.length-1);
    var last2 = target.charAt(target.length-1);
    return (last == last2);
}

为了使用所需的返回值通过所有测试,函数不应比较字符串的最后一个字符,而应比较整个字符串
target
str
的相应结束子字符串。您需要
target
的长度,以便在
str
中找到相应子字符串的正确起始索引,如下所示:

function confirmEnding (str, target) {
    return str.substr(-(target.length)) === target
}
您的代码正在比较整个字符串。请参阅下面的
substring()
文档
-1
默认为
0
,因此返回从索引
0
开始的子字符串,并返回字符串的其余部分(整个字符串),因为没有给出结束索引

如果任一参数小于0或为NaN,则将其视为 我们是0。”

如果要使用负索引,可以使用
substr()
方法代替
substring()
substr()
识别负索引值,而不是默认为
0


如果start为负数,substr()将其用作 最后一句话。”

您可以使用
target
的长度,并将其从
str
的长度中减去,以获得正确的子字符串进行比较。这将返回从该索引到字符串末尾的所有字符,如
str.length-target.length
中所示,尽管您只需要
target.length
使用负索引进行比较

使用子字符串():


使用substr():

或更干净/替代的实施方式:

function confirmEnding (str, target) {
   return str.substr(-(target.length) === target)
}




为了用所需的返回值通过所有测试,函数不应该比较字符串的最后一个字符,而是比较整个字符串,
target
str
的相应结束子字符串。您需要
target
的长度,以便在
str
中找到相应子字符串的正确起始索引,如下所示:

function confirmEnding (str, target) {
    return str.substr(-(target.length)) === target
}
您的代码正在比较整个字符串。请参阅下面的
substring()
文档<代码>-1默认为
0
,因此返回
const confirmEnding = (_str, _target) => _str.charAt(_str.length - 1) === _target.charAt(_target.length - 1);
confirmEnding(
    "Walking on water...both are frozen",
    "specification"
);  // Should return false (why not true?)
/* Do not use the built-in method .endsWith() to solve the challenge. */