首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么substr()返回空字符串?

substr()是JavaScript中的一个字符串方法,用于从指定位置开始提取字符串的一部分。它接受两个参数,第一个参数是起始位置,第二个参数是要提取的字符数。

substr()返回空字符串的原因可能有以下几种情况:

  1. 参数错误:如果传递给substr()的起始位置参数大于字符串的长度,或者第二个参数为负数,则会返回空字符串。例如,如果字符串长度为5,但起始位置参数为6,则返回空字符串。
  2. 第二个参数为0:如果第二个参数为0,则substr()将返回空字符串。这是因为它表示不提取任何字符。
  3. 起始位置大于结束位置:如果传递给substr()的起始位置大于结束位置,则返回空字符串。例如,如果起始位置为5,结束位置为3,则返回空字符串。
  4. 字符串为空:如果调用substr()的字符串本身为空字符串,则无论传递什么参数,都会返回空字符串。

需要注意的是,substr()方法在现代JavaScript中已经不推荐使用,推荐使用更强大和灵活的substring()或slice()方法来提取字符串的一部分。

腾讯云相关产品和产品介绍链接地址:

  • 云服务器(CVM):提供可扩展的计算容量,满足各种业务需求。产品介绍链接
  • 云数据库 MySQL 版(CDB):高性能、可扩展的云数据库服务,适用于各种规模的应用。产品介绍链接
  • 人工智能机器学习平台(AI Lab):提供丰富的人工智能算法和模型,帮助开发者快速构建智能应用。产品介绍链接
  • 云存储(COS):安全、稳定、低成本的对象存储服务,适用于海量数据存储和访问。产品介绍链接
  • 区块链服务(Tencent Blockchain):提供高性能、可扩展的区块链解决方案,帮助企业构建可信赖的应用。产品介绍链接
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

字符串截取substr和substring区别?

//同样的方式,给定两个变量赋值一样 var x=y="0123456789"; //首先看返回的值来判断参数的问题 x.substr(2,5);//返回的23456 y.substring(2,5);...//返回234 //由此得出第一个参数开始截取的位置,substr很明显第二个参数是截取的长度; //而substring第二个参数是截取的结束位置(不包含结束位置上的字符串) //上次探索的数组中原数组可能发生变化...,我们使用上一次试一下 console.log(x,y);//发现x和y均未发生变化,因此在字符串操作不存在原字符串对改变的情况 x.substr(-4);//返回6789; y.substring(-...4);//返回0123456789 多次尝试substring输入负值依旧返回字符串表面不支持这个参数 而subst(-n)返回从结束位置数n为,表面返回后n位 小结:substr和substring...都是截取字符串的操作,但是两者参数略有不同,substr第二个参数表示截取长度,substring第二个参数表示截取的结束位置,substr还支持负值表示了截取字符串的后面几位!

2K20
  • js 字符串截取substr和substring详解

    1. substr 方法 返回一个从指定位置开始的指定长度的子字符串。 stringObj.substr(start [, length ]) 参数 stringvar:必选项。...要提取子字符串字符串文字或 String 对象。 start:必选项。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。 length:选项。在返回的子字符串中应包括的字符个数。...说明 如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到 stringvar 的最后。 示例 下面的示例演示了substr 方法的用法。...; ss = s.substr(4, 3); // 获取子字符串。 return(ss); // 返回 "大学生"。...} 2.substring 方法 返回位于 String 对象中指定位置的子字符串

    2.5K20

    c++字符串函数 --- substr()函数的用法

    有关字符串截取函数的用法老不清晰。却总会时不时用到。例如蓝桥杯的一个大题想着用字符串截取函数substr()函数跑暴力匹配。...string s("12345asdf");   string a = s.substr(0,5); //获得字符串s中从第0位开始的长度为5的字符串   cout << a << endl;...} 第一个参数表示的pos,从哪个位置开始,第二个参数表示的是长度,要截取多长的字符串。...形式:s.substr(pos, n) 解释:返回一个string,包含s中从pos开始的n个字符的拷贝(pos的默认值是0,n的默认值是s.size() - pos,即不加参数会默认拷贝整个s) 充:...若pos的值超过了string的大小,则substr函数会抛出一个out_of_range异常;若pos+n的值超过了string的大小,则substr会调整n的值,只拷贝到string的末尾 我们来简单看一个例题

    2.6K20

    JS字符串截取函数slice(),substring(),substr()的区别

    另外,这三个方法切片后都不会影响原来的字符串,而且都有返回值 重要事项: 与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数。...() substr()方法返回从指定位置开始的字符串中指定字符数的字符,语法如下: str.substr(start, \[length\]) 下面有四点需要注意: substr()会从start获取长度为...如果start是正的并且大于或等于字符串的长度,则substr()返回一个空字符串。 若start为负数,则将该值加上字符串长度后再进行计算(如果加上字符串的长度后还是负数,则从0开始截取)。...如果length为0或为负数,substr()返回一个空字符串。如果length省略,则将substr()字符提取到字符串的末尾。...如果beginIndex大于或等于字符串的长度,则slice()返回一个空字符串。 如果endIndex省略,则将slice()字符提取到字符串的末尾。

    2.4K10

    Dart字符串

    NullPointerExp是无数java程序员都想消除的问题,OC里,nil对象调方法返回的是nil(这种做法,仁者见仁,智者见智);kotlin和swift通过optional机制,通过编程过程中强化...[用法] Empty string judge 在判断一个字符串是否为时,我们一般是这样写的: // 判断不为 if (str != null && !...isNotEmpty会返回false,而同样的!str?.isNotEmpty,就会返回true,这样恰好就符合我们期望的逻辑了。...是不建议if中传null这样非bool类型的对象的,所以你这样写的话会给一个提示: [s05eaoag3o.png] 这里的逻辑确实容易让不了解的人很困惑,所以不建议用以上null-aware操作符来做字符串判断...如果想做一个工具方法来简化字符串的判断,也不用自己重复造轮子,推荐使用官方的quiver.strings这个库,里面涵盖了字符串的一些常用工具方法。

    14.6K30

    Mybatis查询结果为时,为什么返回值为NULL或空集合?

    开始前我们先看一个问题: 你是否曾经在学习 Mybatis 的时候跟我有一样的疑问,什么情况下返回 null,什么时候是空集合,为什么会是这种结果?那么你觉得上述这种回答能说服你嘛?...看完这篇你就知道查询结果为时候为什么集合会是空集合而不是 NULL,而对象为什么会是 NULL 了。 PS:对过程不感兴趣的可以直接跳到最后看结论。...最后返回映射的结果对象,如果没有映射任何属性,则需要根据全局配置决定如何返回这个结果值,这里不同场景和配置,可能返回完整的结果对象、结果对象或是 null。...当返回行的所有列都是时,MyBatis 默认返回 null。当开启这个设置时,MyBatis会返回一个实例。 请注意,它也适用于嵌套的结果集(如集合或关联)。...而返回值为集合对象且查为时,selectList 会把这个存储结果的 List 对象直接返回,此时这个 List 就是个空集合。

    5.2K20

    JS-字符串截取方法slice、substring、substr的区别

    一、使用 slice() 截取 1,函数说明 slice() 方法可通过指定的开始和结束位置,提取字符串的某个部分,并以新的字符串返回被提取的部分。...返回值说明: 该方法返回一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。...() 截取 1,函数说明 substr 方法用于返回一个从指定位置开始的指定长度的子字符串。...length(可选):在返回的子字符串中应包括的字符个数。 (2)注意事项: 如果 length 为 0 或负数,将返回一个空字符串。...1,indexOf() 返回字符串中匹配子串的第一个字符的下标。

    2.8K10

    php字符串截取函数mb_substr用法实例分析

    本文实例讲述了php字符串截取函数mb_substr用法。...mb_internal_encoding() ]] )-截取字符串 (PHP 4 = 4.0.6, PHP 5) str 要获取字符串的目标字符串(字符串起始位置为0)start,str中要使用的第一个字符的位置...总结: 1、在处理英文字符串的时候,该函数的第四个参数($encoding)可以忽略。 2、在处理中文字符串的时候,就要小心了,一定要考虑编码问题,编码不同,中文的值也不同。...3、在中文字符串导入数据库时,就显得更为重要了。 4、处理字符串或文本的编码能力,是衡量程序员功力的一项标准。...补充:substr和mb_substr的区别 异同点: 两个函数都是截取字符串的长度,不同的是mb_substr可以针对多字节编码的汉字进行截取,从而防止乱码的出现 实例说明: 示例1: <?

    2.6K21

    数据库截取字符串SUBSTR函数的使用

    背景 今天中午做需求的时候,有类似于根据银行卡卡号的前几位判断出是哪个银行的情况,每个银行需要截取的位数都不一样,这时我就想到了SUBSTR 数据库截取字符串SUBSTR函数的使用 假设有一个表的结构如下...SUBSTRING与SUBSTR区别不大,输出结果一致; 1 SUBSTR(str,pos) 2 SUBSTR(str,pos,len) 3 SUBSTRING(str FROM pos FOR len...pos,len) 这几个函数的用法和上面的两种类似,参见上述; SUBSTRING_INDEX(str,delim,count)函数的用法 用法规则: SUBSTRING_INDEX(“待截取有用部分的字符串...SELECT SUBSTRING_INDEX(idtf_value,'4',2) idtfValue 2 FROM tlk_bnkld_card 3 WHERE idtf_value='392454' 将字符串用..."4"分割开,截取从开始到第二个“4”之前的字符串输出 执行结果 ?

    1.5K20

    芯光纤,为什么这么火?

    传统纤芯 芯光纤,顾名思义,就是光纤里面不再有实体纤芯,而是“”的——只有空气、惰性气体或真空。 那么,芯光纤,相比于传统玻芯光纤,到底有什么优势呢?...为什么现在光通信行业,都非常关注和重视芯光纤呢? 研究芯光纤,并不是因为减少了里面的纤芯能够降低成本,而是因为光信号在空气中传播,比在玻璃纤维中传播更有优势。...芯光纤还有很多的优点,小枣君待会再做介绍。 █ 芯光纤的发展演进 接下来,我们还是先看看芯光纤的技术实现。 光纤的原理,说白了,就是把光“困”在有线线缆里。...于是,科学家们继续探索,想要找到新的芯光纤结构。 研究人员提出了Kagome型芯光纤。后来,基于对Kagome型芯光纤的研究,又提出了反谐振芯光纤,成为业界主流研究方向。...三大运营商更不用说了,死死盯着芯光纤技术的相关进展。 相信接下来的这几年,芯光纤的研究和落地将会进一步提速。 █ 芯光纤的优点 我们再来说说芯光纤的优点。

    50310
    领券