JavaScript字符串处理:substring, substr, slice
来源:互联网 发布:刘毅的词汇书 知乎 编辑:程序博客网 时间:2024/05/14 06:31
从字符串中提取某一部分是非常容易弄懂的。在Javascript中有三个不同的内置函数可以完成这个操作。正是因为这样,通常初学者很困惑不知道该选哪一个。更糟糕的是,有时很容易就中了圈套而选择一个错误的函数。
字符串的 substring
(ECMAScript 5.1 规定 章节15.5.4.15) 是做字符检索的第一个正确选择。这个 substring
函数可以有两个数字做为参数,用来分别指明截取的字符在字符串中的开始和结束(包含结束)位置。另一种情况,如果结束位置的值小于开始位置,函数substring在截取字符时能智能交换开始和结束位置。下面的代码段是一个substring函数的实例:
var a = 'The Three Musketeers';a.substring(4, 9); 'Three'a.substring(9, 4); 'Three'
非常多的Javascript环境(包含非常多的现代网页浏览器)也实现了一个不同于
substring
的函数,叫做 substr
(章节 B.2.3).。但是, substr
的参数分别是开始字符的位置和截取字符的长度。实例如下:var b = 'The Three Musketeers';b.substr(4, 9); 'Three Mus'b.substr(9, 4); ' Mus'
当同时使用这两个函数时,情况会非常混乱。很容易弄混它们,从而得到一个错误的结果。函数名也没有一点帮助,substring
和 substr
,它们如此的相似。如果不查看文档和规定,就会多一个选择错误的机会。
还有一些更容易混淆的,字符串对象同样支持 slice
(章节 15.5.4.13),和 Array’s slice 很像。总之而言, slice
有一个功能和 substring
相同(支持开始和结束位置)。但是,它们有一点不同。如果结束位置小于开始位置, slice
不会交换这两个值。换名话说,它跟随数组的 slice
的处理方式,返回一个空值。
var c = 'The Three Musketeers';c.slice(4, 9); 'Three'c.slice(9, 4); ''
上面三个函数都可以添加两个参数并且基于这些参数值截取字符。但是结果却不同。另外,它和数组方法中的混乱情况很像 (看我先前的文章 JavaScript Array: slice vs splice)
当我们写自己的Javascript库时,我们能忽视这种情况的发生吗?解决方案是去避免API导致这种情况。任何时候一个新的公用函数被引进时,搜索现存的函数中是否有相同功能去避免这种混乱。
预防是最佳的处方,建议弄清楚函数的细节。
原文:http://ariya.ofilabs.com/2014/02/javascript-string-substring-substr-slice.html
0 0
- JavaScript字符串处理:substring, substr, slice
- javascript---字符串操作方法slice,substr,substring区别
- JavaScript 中的字符串分割 slice()、substr()、substring()
- 字符串截取substr substring slice
- 字符串的slice(),substr(),substring()
- Javascript slice() ,substr() 与substring()
- Javascript—substring/slice/substr
- JavaScript substr,substring,slice,splice
- javascript,子字符串操作方法:Slice()、Substr()、Substring()的区别
- javascript中concat()、slice()、substr()和substring()字符串方法
- javascript的字符串方法【substring、slice、substr】的区别
- 字符串处理截取slice、substring、substr的异同
- js处理字符串的substr()slice()substring()match()replace()用法
- JS截取字符串:slice(),substring()和substr()
- 字符串中substring(),substr(),slice()方法用法
- js字符串截取函数slice()、substring()、substr()
- js字符串截取函数slice()、substring()、substr()
- js字符串截取函数slice()、substring()、substr()
- Android 欢迎动画
- 夸父逐日
- 请教关于OD载入文件
- centos 6.5 64 eth0不能自动启动?原来是network的问题
- Android的bitmap和优化
- JavaScript字符串处理:substring, substr, slice
- cocos2d-x知识巩固-基础篇(1)
- .h文件和.cpp文件怎么写?
- struts设置开发模式
- nutch + hadoop + zookeeper + hbase, linux脚本
- activeMQ消息存储机制_Kaha存储机制原理分析
- 计算器后台逻辑实现——表达式分析器
- nutch MapReduce 笔记
- 余弦相似性cosine similiarity