引言

在js中字符串截取函数有常用的三个slice()、substring()、substr()函数,同时还有一些方法如split() 、Join() 、indexOf()可以对字符串进行操作,来获得截取我们想要的字符串。

语法

取字符串的三个函数:

slice(start,[end])
substring(start,[end])
substr(start,[length])

slice()

第一个参数代表开始位置,第二个参数代表结束位置的下一个位置,截取出来的字符串的长度第二个参数与第一个参数之间的差


若参数值为负数,则将该值加上字符串长度后转为正值;

若第一个参数等于大于第二个参数,则返回空字符串。

substring()

第一个参数表示开始位置,第二个参数代表结束位置的下一个位置;

若参数值为负数,则将该值转为0;

两个参数中,取较小值作为开始位置,截取出来的字符串的长度为较大值与较小值之间的差。


substr()

第一个参数代表开始位置,第二个参数代表截取的长度

若参数为负数,第一个按倒叙查,若超出字符串长度,则输出整个字符串。第二个参数视为0。


PS:字符串都是从0开始计起。

示例

   var stmp = "rcinn.cn";//使用一个参数console.log("demoStringSlice");console.log(stmp.slice(3),"nn.cn")console.log(stmp.substring(3),"nn.cn");//使用两个参数console.log(stmp.slice(1,5),"cinn")console.log(stmp.substring(1,5),"cinn");//如果只用一个参数并且为0的话,那么返回整个参数console.log(stmp.slice(0),"rcinn.cn");console.log(stmp.substring(0),"rcinn.cn");//返回第一个字符console.log(stmp.slice(0,1),"r");console.log(stmp.substring(0,1),"r");//在上面的例子中我们可以看出slice()和substring()的用法是相同的//返回的值也是一样的,但当参数为负数时,他们的返回值却不一样,看下面的例子console.log(stmp.slice(2,-5),"i");console.log(stmp.substring(2,-5),"rc");//从上面两个例子可以看出slice(2,-5)实际上是slice(2,3)//负5加上字符串长度8转换成正3(若第一位数字等于或大于第二位数字,则返回空字符串);//而substring(2,-5)实际上是substring(2,0),负数转换为0,substring总是把较小的数作为起始位置。console.log(stmp.substring(1,5),"cinn")console.log(stmp.substr(1,5),"cinn.");

the different of substring and substr

var str = "0123456789";//
console.log("the different of substring and substr");
console.log(str.substring(0),"0123456789");//------------"0123456789"
console.log(str.substring(5),"56789");//------------"56789"
console.log(str.substring(10),"");//-----------""
console.log(str.substring(12),"");//-----------""
console.log(str.substring(-5),"0123456789");//-----------"0123456789"
console.log(str.substring(-10),"0123456789");//----------"0123456789"
console.log(str.substring(-12),"0123456789");//----------"0123456789"
console.log(str.substring(0,5),"01234");//----------"01234"
console.log(str.substring(0,10),"0123456789");//---------"0123456789"
console.log(str.substring(0,12),"0123456789");//---------"0123456789"
console.log(str.substring(2,0),"01");//----------"01"
console.log(str.substring(2,2),"");//----------""
console.log(str.substring(2,5),"234");//----------"234"
console.log(str.substring(2,12),"23456789");//---------"23456789"
console.log(str.substring(2,-2),"01");//---------"01"
console.log(str.substring(-1,5),"01234");//---------"01234"
console.log(str.substring(-1,-5),"");//--------""
console.log(str.substr(0),"0123456789");//---------------"0123456789"
console.log(str.substr(5),"56789");//---------------"56789"
console.log(str.substr(10),"");//--------------""
console.log(str.substr(12),"");//--------------""
console.log(str.substr(-5),"56789");//--------------"0123456789"
console.log(str.substr(-10),"0123456789");//-------------"0123456789"
console.log(str.substr(-12),"0123456789");//-------------"0123456789"
console.log(str.substr(0,5),"01234");//-------------"01234"
console.log(str.substr(0,10),"0123456789");//------------"0123456789"
console.log(str.substr(0,12),"0123456789");//------------"0123456789"
console.log(str.substr(2,0),"");//-------------""
console.log(str.substr(2,2),"23");//-------------"23"
console.log(str.substr(2,5),"23456");//-------------"23456"
console.log(str.substr(2,12),"23456789");//------------"23456789"
console.log(str.substr(2,-2),"");//------------""
console.log(str.substr(-1,5),'9');//------------"01234"
console.log(str.substr(-1,-5),"");//-----------"" 

split()

功能:使用一个指定的分隔符把一个字符串分割存储到数组

语法

stringObject.split(separator,limit)

separator 必需。分隔符,从该参数指定的地方分隔stringObject。
limit 可选参数。分隔的次数,如设置该参数,返回的子串不会多余这个参数指定的数组,如果无此参数为不限制次数

注意
如果把空字符串 (“”) 用作 separator,那么 stringObject 中的每个字符之间都会被分割。

将字符串分割为字符

document.write(mystr.split("")+"<br>");
document.write(mystr.split("", 5));

运行结果

w,w,w,.,i,m,o,o,c,.,c,o,m
w,w,w,.,i

加上limit只会切割成符合条件的数组,余后的字符会被删除掉

var oStr="jpg|bmp|gif|ico|png";
var arr=oStr.split("|");
console.log(arr);

arr是一个包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的数组

Join()

功能:使用自己选择的分隔符将一个数组合合并为一个字符串

var myList=new Array("jpg","bmp","gif","ico","png");
var portableList=myList.join("|");
console.log(portableList);

indexOf()

功能:返回某个指定的字符串值在字符串中首次出现的位置。

语法

stringObject.indexOf(substring, startpos)

substring 必需。规定需检索的字符串值。
startpos 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是0到stringObject.length-1。如省略改参数,则将从字符串的首字符开始检索

如果要检索的字符串值没有出现,则该方法返回 -1。

var myString="JavaScript"
var oNum1=myString.indexOf("v");
var oNum2=myString.indexOf("S");
var oNum3=myString.indexOf("Script");
var oNum4=myString.indexOf("key");
console.log(oNum1,oNum2,oNum3,oNum4);

JavaScript-截取字符串相关推荐

  1. javascript截取字符串方法实例

    JS截取字符串可使用 substring()或者slice() 函数:substring() 定义:substring(start,end)表示从start到end之间的字符串,包括start位置的字 ...

  2. JavaScript - 截取字符串方法

    JS提供三个截取字符串的方法: slice() substring() substr() slice()和substring() var stmp = "rcinn.cn"; 使用 ...

  3. JavaScript 截取字符串、转换字符串、修改字符串

    关键字: 1.substr(a,b) 截取字符串 a . 截取开始的索引值 b .截取长度 2.indexOf   判断字符串在不在某个字符串中 3.replace(a,b) 替换修改字符串 b 替换 ...

  4. html前台截取/以后的字段,javascript如何截取字符串后几位?

    javascript截取字符串的方法有substring(start,stop).substr(start,length).slice(start,end),通过设置其中参数就可以截取字符串后几位. ...

  5. html字段截取前几位,javascript怎么截取字符串前几位?

    截取字符串是编程中最常见的操作之一, 熟练的掌握对字符串的处理是衡量是否入门的一个标准. JavaScript 这门语言内置了非常强大的字符串处理工具. javascript截取字符串的方法如下: 一 ...

  6. 在html中如何截取字符串,javascript中如何截取字符串?

    JavaScript中截取字符串有三种方法,分别是substring(),substr(),split().下面本篇文章就来给大家介绍一下它们的使用方法,希望对大家有所帮助. 方法1:使用substr ...

  7. JavaScript如何截取字符串的最后一位

    工作开发过程中,经常会需要截取字符串的最后一位,下面来一起看一下该如何操作 方法1:String对象的charAt方法 charAt方法的作用是返回指定位置的字符 str.charAt(str.len ...

  8. JavaScript丨使用正则截取字符串内容

    1.截取某个字符串前面的内容: varstr = "aaabbbcccdddeeefff"; tr = str.match(/(\S*)fff/)[1]; alert(str);/ ...

  9. CSS截取字符串,兼容浏览器

    今天在经典论坛看到有同学问到CSS截取字符多余省略号代替的求助且要兼容FF... 这个的确是个比较头痛的问题,现在我在的公司都是程序截取显示省略符的.兼容是没问题,但在中文和数学或字母混排时,就会有点 ...

  10. vue截取一个字符串_vue如何截取字符串

    在后端有许多的封装方法来截取字符串或者对字符串的操作,同样前端也有相应的方法. 有一个data数据为ipaddr data() { return { ipaddr: "192.168.100 ...

最新文章

  1. Java魔法堂:注解用法详解——@SuppressWarnings
  2. 自定义控件android特效,Android自定义控件eBook实现翻书效果实例详解
  3. 【渝粤教育】国家开放大学2018年春季 0014-21T秘书学(一) 参考试题
  4. (数据科学学习手札03)Python与R在随机数生成上的异同
  5. ibatis调用mysql带OUT类型参数的存储过程并获取返回值
  6. MySQL Workbench工具设置编码
  7. 渐变,类Flash的菜单
  8. imageio读取数据后需要关闭吗_关闭汽车自动启停功能后,能更换为普通汽车电瓶吗?有什么影响吗...
  9. scala解析xml_Scala XML处理–文字,序列化,解析,保存和加载示例
  10. Android 6.0 扫描不到 Ble 设备需开启位置权限
  11. mysql id 不连续_MySQL中自增主键不连续之解决方案。(20131109)
  12. 【转】nodejs 压缩文件 zip-local
  13. css怎么设置数字的字体格式,css设置字母数字字体库信息
  14. 如何免费下载百度文库文档
  15. 典型的对称加密和非对称加密算法有哪些
  16. c语言中正确的常量表达式,C语言常量变量表达式
  17. Python中time.sleep(0.001)真的只等待1毫秒吗?
  18. 互联网广告的形式表现有哪几种?
  19. 全网清晰虚拟机安装截图
  20. 决定转学运维了,JAVA学不下去了

热门文章

  1. 一些学习经验总结(个人随笔)
  2. CentOS7 NVIDIA显卡驱动安装教程(亲测有效)
  3. 2018年数据泄露事件
  4. 如何修改VMware虚拟机的配置文件.vmx
  5. java实现gif动画效果(java显示动态图片)
  6. ps 2022 保存打开文件闪退解决方法
  7. Android 手游聚合SDK那些事
  8. CTF-PHP反序列化漏洞1-基础知识
  9. 《Java并发编程的艺术》读后笔记-Java中的并发工具类(第八章)
  10. Trimmomatic、bowtie2、samtools和bedtools安装过程全记录(已全部安装成功)