当前位置: 首页 > news >正文

js中substring和substr的用法比较

原文: js中substring和substr的用法比较

推荐使用substring 方法

 
stringObject.substring(start,stop)
 
stringObject.substr(start,length)
 
定义和用法
提取字符串中两个指定的索引号之间的字符。
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
 

从起始索引号提取字符串中指定数目的字符。

substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

 
参数 描述
参数     描述
start     必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
stop     可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。
 参数    描述
start   必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。
length 可选。在返回的子字符串中应包括的字符个数。
 
返回值
一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。 一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 length 个字符。如果没有指定 length,那么返回的字符串包含从 start 到 stringObject 的结尾的字符。 
说明
substring 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。
如果 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。
如果 start 或 end 为负数,那么它将被替换为 0。
 如果start为负数,则start=str.length+start。
如果 length 为 0 或负数,将返回一个空字符串。
如果没有指定该参数,则子字符串将延续到stringObject的最后。
 
 
var str = "0123456789";

console.log(str.substring(0));//------------"0123456789"
console.log(str.substring(5));//------------"56789"
console.log(str.substring(10));//-----------""
console.log(str.substring(12));//-----------""
console.log(str.substring(-5));//-----------"0123456789"
console.log(str.substring(-10));//----------"0123456789"
console.log(str.substring(-12));//----------"0123456789"
console.log(str.substring(0,5));//----------"01234"
console.log(str.substring(0,10));//---------"0123456789"
console.log(str.substring(0,12));//---------"0123456789"
console.log(str.substring(2,0));//----------"01"
console.log(str.substring(2,2));//----------""
console.log(str.substring(2,5));//----------"234"
console.log(str.substring(2,12));//---------"23456789"
console.log(str.substring(2,-2));//---------"01"
console.log(str.substring(-1,5));//---------"01234"
console.log(str.substring(-1,-5));//--------""
 
var str = "0123456789";

console.log(str.substr(0));//---------------"0123456789"
console.log(str.substr(5));//---------------"56789"
console.log(str.substr(10));//--------------""
console.log(str.substr(12));//--------------""
console.log(str.substr(-5));//--------------"56789"
console.log(str.substr(-10));//-------------"0123456789"
console.log(str.substr(-12));//-------------"0123456789"
console.log(str.substr(0,5));//-------------"01234"
console.log(str.substr(0,10));//------------"0123456789"
console.log(str.substr(0,12));//------------"0123456789"
console.log(str.substr(2,0));//-------------""
console.log(str.substr(2,2));//-------------"23"
console.log(str.substr(2,5));//-------------"23456"
console.log(str.substr(2,12));//------------"23456789"
console.log(str.substr(2,-2));//------------""
console.log(str.substr(-1,5));//------------"9"
console.log(str.substr(-1,-5));//-----------""   
 
 备注

 重要事项:与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数。

 

重要事项:ECMAscript 没有对该方法进行标准化,因此反对使用它。substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。

 

相关文章:

  • 理解JavaScript定时器:setTimeout和setInterval
  • 13、jQueryMobile知识总结
  • 控件函数对话框上的控件的大小和位置随着对话框的大小的改变而变化
  • 线段树(多棵) HDOJ 4288 Coder
  • linux基础1
  • windons 安装ruby on rails
  • ChannelHandler adapters
  • 设置MySQL开机自动启动
  • [svc][op]关闭linux centos各种声音
  • unity3d倒计时后几秒改变颜色方法
  • js 多语言转换代码
  • HtmlUnit、httpclient、jsoup爬取网页信息并解析
  • 10个你可能没用过的Linux命令
  • 备案以及端口
  • gjrand 4.0.2 发布,伪随机数生成器
  • ----------
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【面试系列】之二:关于js原型
  • 3.7、@ResponseBody 和 @RestController
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Linux下的乱码问题
  • Logstash 参考指南(目录)
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 阿里云Kubernetes容器服务上体验Knative
  • 百度小程序遇到的问题
  • 闭包--闭包作用之保存(一)
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 入门到放弃node系列之Hello Word篇
  • 使用Gradle第一次构建Java程序
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 微信公众号开发小记——5.python微信红包
  • 与 ConTeXt MkIV 官方文档的接驳
  • ​iOS实时查看App运行日志
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (五)MySQL的备份及恢复
  • (一)SpringBoot3---尚硅谷总结
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)http协议
  • .dwp和.webpart的区别
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .net FrameWork简介,数组,枚举
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [ linux ] linux 命令英文全称及解释
  • [<事务专题>]
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——
  • [BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务
  • [C#]winform部署PaddleOCRV3推理模型
  • [C++]二叉搜索树
  • [C++]拼图游戏