如何使用子字符串函数,这是啥意思? [复制]

Posted

技术标签:

【中文标题】如何使用子字符串函数,这是啥意思? [复制]【英文标题】:how to use substring function and what does this mean? [duplicate]如何使用子字符串函数,这是什么意思? [复制] 【发布时间】:2018-06-02 04:08:11 【问题描述】:

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

【问题讨论】:

substring 会让你成为字符串的一部分 String.prototype.substr foo.length 是不必要的,你可以简单地删除它 那么字符串的输出是什么?对此感到困惑 是否有某些原因导致您无法运行此代码来查看输出并查看 substr 的文档 【参考方案1】:

3298h309hj

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

bar.substr(2) => 获取 bar 的子串,从 char 2 开始,返回所有的 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() );

【讨论】:

【参考方案2】:

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 个字符3 开始提取foo.length-6 (9-6=3) 字符,从而得到329

表达式bar.substr(2) 正在提取从第三个字符8 开始的所有字符(因为第二个参数length 未定义),结果为8h309hj

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

【讨论】:

以上是关于如何使用子字符串函数,这是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

MFC中 MessageBox 函数字符串前加 L 啥意思??

js replace(/\s/g,"")这破玩意是啥意思阿

请问C语言中strcpy函数,dst和src不能重叠是啥意思?

字符串前的“@”是啥意思? [复制]

C语言中,#include "string.h"是啥意思?

python中的kwargs保留字。这是啥意思? [复制]