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

时间:2017-12-19 16:58:59

标签: javascript

所以我目前正试图弄清楚下面的代码会输出什么。我对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());




2 个答案:

答案 0 :(得分:0)

3298h309hj

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

开始比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() );

答案 1 :(得分:0)

  

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

此功能的语法是

str.substr(start[, length])
  

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

     

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

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/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());




表达式foo.substr(3,foo.length-6)从第4个字符foo.length-6开始提取9-6=33)个字符,结果为329

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

将它们与最终表达式放在一起,得到:The code is: 3298h309hj