Javascript查找并匹配字符串的最后一项
我正在尝试编写这个函数来检查字符串(第一个参数,str)是否以给定的目标字符串(第二个参数,target)结尾。我使用过这个代码,但似乎不起作用。我如何调整它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,目标){
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. */