平常经常把这几个api的参数记混了,于是打算记录下来,当不确定的时候在拿出来翻翻;

在做项目的时候,经常会需要截取字符串,所以常用的方法有slice()、substr()、substring()、match()方法等,四个方法的使用如下所示;

 <script type="text/javascript">
// 截取字符串的方法
//注意1、字符串的截取都是从左向右,不会有从右向左截取;2、slice与substring方法,截取返回的字符串包含numStart而不包含numEnd;3、注意slice方法当numStart大于numEnd时截取为空而substring当numStart大于numEnd时回调换二者位置,截取numEnd到numStart之间的字符串
var str = "HellohappyworldHello!";
//1.slice(numStart,numEnd) 返回的值为截取指定下标之间的字符串,参数可以为负数,可以不填,正整数表示从左向右读取小兵截取,负整数表示从右向左读取下标截取,当第一个开始下标参数为负整数时,第二个参数不需要了,如果写上不管是正整数还是负整数都截取为空的字符串,总结如下,不填参数时,截取取的是原字符串,第一个参数为正整数时,第二个参数,可不填(即为到字符串结尾),可填正整数(即从start-end),可以为负整数(即start-(str.length+end)),第一个参数为负整数时(即从右向左读取下标截取,右是从-1开始),第二个参数写上会截取为空,最后注意第二个参数都不能大于第一个参数,可以与坐标轴类比
var sliceStr1 = str.slice(2); //llohappyworldHello!
var sliceStr2 = str.slice(2,7); //lloha
var sliceStr3 = str.slice(-2); //o!
var sliceStr4 = str.slice(-2,5); //""
var sliceStr5 = str.slice(-2,-5); //""
var sliceStr6 = str.slice(2,-5); //llohappyworldH
console.log(sliceStr1);
console.log(sliceStr2);
console.log(sliceStr3);
console.log(sliceStr4);
console.log(sliceStr5);
console.log(sliceStr6); //2.substr(numStart,length) 返回的是从指定位置截取,length长度的字符串,numStart必填,为正整数时,表示从左向右读取下标截取,当为负整数时,表示从右至左读取下标截取,第二个参数表示需要截取字符串的长度,当为负整数时,返回的为空,整数数时表示截取的长度,当超过字符串的剩余长度时,到字符串末尾为止
var substrStr1 = str.substr(2); //llohappyworldHello!
var substrStr2 = str.substr(-2); //o!
var substrStr3 = str.substr(2,18); //llohappyworldHello
var substrStr4 = str.substr(-2,1); //o
var substrStr5 = str.substr(-2,-1); //""
console.log(substrStr1);
console.log(substrStr2);
console.log(substrStr3);
console.log(substrStr4);
console.log(substrStr5); //3、substring(numStart,numEnd) 与slice类似,但是第一个参数为负整数时,截取的为整个字符串
var substringStr1 = str.substring(2); //llohappyworldHello!
var substringStr2 = str.substring(-2);//HellohappyworldHello!
var substringStr3 = str.substring(7,2); //lloha
var substringStr4 = str.substring(2,7); //lloha
console.log(substringStr1);
console.log(substringStr2);
console.log(substringStr3);
console.log(substringStr4); //4、match方法 注意1、match方法返回的是一个含有匹配项字符串的数组;2、需要根据不同的情况来写正则;3、返回的数组里面第一个总是原来的字符串;4、当正则表示式有子表示时(即(\S*)括号内的内容),且为全局匹配时只查找全匹配正则表达式并返回所有内容,为非全局时,返回的是多个元素数组;当正则表达式无子表达式时,且为全局匹配时,返回的是多个元素的数组,如果为非全局匹配时,返回的是匹配到第一个元素的数组
var regStr1 = str.match(/Hello/g); //["Hello","Hello"]
var regStr9 = str.match(/Hello/); //["Hello"]
var regStr2 = str.match(/hello/g); //null
var regStr3 = str.match(/Hello(\S*)world/); //["Hellohappyworld", "happy"] //截取中间字符串
var regStr4 = str.match(/(\S*)world/g); //["Hellohappyworld"] //截取指定字符之前的字符串
var regStr5 = str.match(/(\S*)world/); //["Hellohappyworld", "Hellohappy"] //截取指定字符之前的字符串
var regStr6 = str.match(/Hello(\S*)/g); //["HellohappyworldHello!"] //截取指定字符之后的字符串
var regStr7 = str.match(/Hello(\S*)/); //["HellohappyworldHello!", happyworld!] //截取指定字符之后的字符串
var regStr8 = str.match(/llo(\S*)/); //["llohappyworldHello!", happyworldHello!] //截取指定字符的字符串
console.log(regStr1);
console.log(regStr9);
console.log(regStr2);
console.log(regStr3);
console.log(regStr4);
console.log(regStr5);
console.log(regStr6);
console.log(regStr7);
console.log(regStr8);
</script>

当然上面这些方法与使用方式都是一些简单的需求,当项目中的需求比较复杂时还得结合实际情况来进行截取,不过不管怎样使用的方法or实现思路都大概类似,另外也鞭策一下自己好记性不如烂笔头,碰到什么问题or新知识还是要养成记录下来的习惯,希望与诸位园友共勉。

js常用的4种截取字符串方法的更多相关文章

  1. java中subString、split、stringTokenizer三种截取字符串方法的性能比较(转)

    最近在阅读java.lang下的源码,读到String时,突然想起面试的时候曾经被人问过:都知道在大数据量情况下,使用String的split截取字符串效率很低,有想过用其他的方法替代吗?用什么替代? ...

  2. .NET中常用的几种解析JSON方法

    一.基本概念 json是什么? JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是一种轻量级的数据交换格式,是存储和交换文本信息的语法. ...

  3. iOS中常用的四种数据持久化方法简介

    iOS中常用的四种数据持久化方法简介 iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 ...

  4. 三种JS截取字符串方法

    JS提供三个截取字符串的方法,分别是:slice(),substring()和substr(),它们都可以接受一个或两个参数: var stmp = "rcinn.cn"; 使用一 ...

  5. C#几种截取字符串的方法小结 (摘抄)

    1.根据单个分隔字符用split截取 例如 string st="GT123_1"; string[] sArray=st.split("_"); 即可得到sA ...

  6. JS截取字符串方法实例

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

  7. C#几种截取字符串的方法(split 、Substring、Replace、remove)

    C#截图字符串常用的方法有 split .Substring.Replace.remove等. split的使用: 1. Split( Char ()) 返回的字符串数组包含此实例中的子字符串(由指定 ...

  8. C#几种截取字符串的方法小结

    1.根据单个分隔字符用split截取例如代码如下: string st="GT123_1"; string[] sArray=st.split("_"); 即可 ...

  9. C#几种截取字符串的方法小结,需要的朋友可以参考一下

    1.根据单个分隔字符用split截取 例如 复制代码 代码如下: string st="GT123_1"; string[] sArray=st.split("_&quo ...

随机推荐

  1. sublime text 下的Markdown写作

    sublime text 2(3)下的Markdown写作 什么是 Markdown wiki Markdown 是一种方便记忆.书写的纯文本标记语言,用户可以使用这些标记符号以最小的输入代价生成极富 ...

  2. x86指令集同频性能提升

    x86近5000条指令,迄今为止最复杂的指令集.这里不研究CISC & RISC,也不考虑process制程变化,主要是看最近几代IA架构对于同频率下性能的提升. x86指令集nasm文档 h ...

  3. 剑指Offer 旋转数组的最小数字

    题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转 ...

  4. python os模块sys模块常用方法

    官方文档看这里 https://docs.python.org/3.5/library/os.html http://www.cnblogs.com/wupeiqi/articles/5501365. ...

  5. 微软职位内部推荐-Senior SDE for Windows App Experience

    微软近期Open的职位: Job posting title: Senior Software Development Engineer Location: China, Beijing Divisi ...

  6. Asm Shader Reference --- Shader Model 1 part

    ps部分 ps_1_1,ps_1_2,ps_1_3,ps_1_4 总览                   Instruction Set                               ...

  7. Delphi 调用批处理

    uses ShellApi; procedure TForm1.Button1Click(Sender: TObject); var filename, Path: string; begin fil ...

  8. c#读取文件

    你平时是怎么读取文件的?使用流读取.是的没错,C#给我们提供了非常强大的类库(又一次吹捧了.NET一番), 里面封装了几乎所有我们可以想到的和我们没有想到的类,流是读取文件的一般手段,那么你真的会用它 ...

  9. GCD多线程 在子线程中获取网络图片 在主线程更新

    子线程中得所有数据都可以直接拿到主线程中使用 //当触摸屏幕的时候,从网络上下载一张图片到控制器的view上显示 -(void)touchesBegan:(NSSet *)touches withEv ...

  10. 巡风源码阅读与分析---view.py

    巡风xunfeng----巡风源码阅读与分析 巡风是一款适用于企业内网的漏洞快速应急.巡航扫描系统,通过搜索功能可清晰的了解内部网络资产分布情况,并且可指定漏洞插件对搜索结果进行快速漏洞检测并输出结果 ...