如何使用子串函数,这是什么意思? [重复]

问题描述 投票:-4回答:2

这个问题在这里已有答案:

所以我现在正试图弄清楚下面的代码会输出什么。我对substr函数感到困惑,所以如果你能解释它会很棒。谢谢

    function getAttackString() {
    var foo = "d32329b34";
    var bar = "x38h309hj";
    return "The code is: "+(foo.substr(3,foo.length-6))+(bar.substr(2));
    }
    
    console.log(getAttackString());
javascript
2个回答
0
投票

3298 AH 09 AH

foo.substr(3,foo.length - 6))=>从char 3 = 329开始,得到比foo短6个字符的foo的子字符串

bar.substr(2)=>获取从char 2开始的bar的子串并返回所有chars = 8h309hj

function getAttackString() {
var foo = "d32329b34";
var bar = "x38h309hj";
return "The code is: "+(foo.substr(3,foo.length-6))+(bar.substr(2));
}

console.log( getAttackString() );

0
投票

substr()方法通过指定的字符数返回从指定位置开始的字符串中的字符。

这个函数的语法是

str.substr(start[, length])

start:开始提取字符的位置。如果给出负数,则将其视为strLength + start,其中strLength是字符串的长度。例如,str.substr(-3)被视为str.substr(str.length - 3)

length:要提取的字符数。如果未定义此参数,则提取从字符串的开头到结尾的所有字符。

(Qazxswpoi)

所以将它应用于您的代码:

表达式function getAttackString() { var foo = "d32329b34"; var bar = "x38h309hj"; return "The code is: " + foo.substr(3,foo.length-6) + bar.substr(2); } console.log(getAttackString());从第4个字符foo.substr(3,foo.length-6)开始提取foo.length-69-6=3)字符,产生3

表达式329从第3个字符bar.substr(2)开始提取所有字符(因为第二个参数,length,未定义),导致8

把它们放在最后的表达式中,你得到:8h309hj

© www.soinside.com 2019 - 2024. All rights reserved.