zoukankan      html  css  js  c++  java
  • JS 中字符串的常用的方法

    总结JS中的常用字符串方法

    截取字符串的三种方式

    1、slice()

    通过指定字符串的开始位置结束位置,截取,返回新的字符串

    slice(start, end)

    start: 必须的,如果是正数是指从头开始(从左向右),如果是负数是指从末尾开始(从右向左)

    end: 可选的,表示结束的位置(但是不包括这个位置),如果没有,就是一直截取到字符串的末尾。

    let str = 'james';
    let a = str.slice(2,3);   //不包括下标为3,返回新值
    console.log(a) // m
    
    let b = str.slice(2)   //一直到末尾的
    console.log(b)   //mes
    
    //如果只传递一个负数作为参数时,就是从字符串的末尾开始截取,截取到相应的下标值(从右向左)
    let c = str.slice(-3)
    console.log(c)   //mes
    

    String.slice()和Array.slice()的区别:

    返回的类型不同,一个是字符串,一个是数组

    2、substring()

    substring 方法用于提取字符串中介于两个指定下标之间的字符;

    substring(start, end)

    start: 必须的,截取字符的最开始的下标值

    end: 可选的,结束下标(但是不包括)

    注意事项:

    1. 不包括end的下标值
    2. 如果没有end,就是到末尾值
    3. 如果 end 大于 start,start和end交换
    4. 如果其中是一个负值,那么就会自动转化为0,在与另外一个值进行比较
    let str = 'james';
    //正常的情况
    let a = str.substring(2,4)
    console.log(a)  //me
    
    //如果没有设置end,就会延迟到字符串末尾
    let b = str.substring(2)
    console.log(b)   //mes
    
    //如果前面的数字,大于后面,就会交换
    let c = str.substring(4, 2)
    console.log(c)   //me
    
    //如果有负值,就会转化为0,再进行比较,是否交换
    let d = str.substring(2, -3)
    console.log(d)  //ja
    
    //只传递一个负数的参数,就是输出整个长度(只要是负数,会默认的转化为0,又因为没有传递第二个参数,直接截取到字符串的末尾)
    let e = str.substring(-3)
    console.log(e)  //james
    

    3、substr()

    substr() 方法用于返回一个从指定位置开始的指定长度的子字符串。

    substr(start,length)

    start(必需):所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。

    length(可选):在返回的子字符串中应包括的字符个数。

    注意事项

    • 如果 length 为 0 或负数,将返回一个空字符串。
    • 如果没有指定 length,那么截取字符串的末尾。
    • 如果 start ,那么它将被替换为 0。
    let str = 'james';
    
    //从下标为2的地方,开始截取长度为3的字符串
    let a = str.substr(2,3)
    console.log(a)  //mes
    
    //直接截取到字符串的末尾
    let b = str.substr(2)
    console.log(b)   //mes
    
    //如果有一个负数,会直接转化为0,然后进行截取(如果长度为0,返回空的字符串)
    let d = str.substr(2, -3)
    console.log(d)  //  空
    
    //只传递一个负数作为参数,那么这个值会先加上字符串的长度,得到的值,作为第一个参数进行以后的操作。
    //(例如:这里传递了 -2 , ‘james’的长度为5, 那么相加的结果为3,所以会把3作为第一个参数)
    let e = str.substr(-2)
    console.log(e)   //es
    

    其他字符串的操作

    charAt()

    返回指定位置的字符。

    charAt(n)

    注意:如果n为小于0,或者大于等于字符串的长度,会返回空的字符串。

    let str = 'james';
    let a = str.charAt(2)
    console.log(a)   //m
    

    concat()

    类似于Array.concat(),用法也基本一样,(拼接字符串使用 “+”也可以)

    str.concat(str1...) 可以连接多个

    let str = 'james';
    let a = str.concat('kobe')
    console.log(a)   //jameskobe
    

    indexOf()

    返回匹配字符的第一个下标,如果没有找到,返回-1

    indexOf(searchString, position)

    searchString: 必须的

    position: 可选的,指定从position的位置开始查找(而不是从头开始)

    let str = 'james kobe';
    let a = str.indexOf('e')
    console.log(a)   //3
    
    //从第4个位置开始查找'e'
    let b = str.indexOf('e', 4)
    console.log(b)   //9
    

    lastIndexOf()

    跟indexOf()的用法一样,只不过是从末尾开始查找

    replace()

    对字符串查找,并且替换

    replace(old, new)

    old: 必须的,要被替换的内容

    new:必须的,新的内容

    返回值: 返回一个新的字符串

    let str = 'jamesa';
    let a = str.replace('a', 'A')
    console.log(a)  //jAmesa
    
    //从这里可以看出,这里只替换了第一个满足条件,就结束了。
    

    localeCompare()

    用本地特定的顺序来比较两个字符串。

    str.localeCompare(otherStr)

    当str小于otherStr,则返回值小于0

    当str等于otherStr,则返回值为0

    当str大于otherStr,则返回值大于0

    注意事项:

    1. 字符串大小比较,是采用字符串的Unicode编码进行对比

    2. 当两个字符串的第一个字符可以比较出大小,则输出其结果值,如果无法比较出大小的话,则继续开始第二个字符开始比较

    3. localCompare对比采用操作系统的排序规则

    4. 对于汉字,采用其比较其拼音大小,输出localeCompare值

    let str = '北京';
    let aa = str.localeCompare('上海')
    console.log(aa);  //-1
    

    split()

    用于把一个字符串分割成字符串数组

    let str = 'james'
    let aa = str.split()   //没有传递参数,完全把整个字符串转化为数组
    console.log(aa)  //['james']
    
    //传递一个分割符,把字符串进行分割,保存在数组中
    let str = 'ja*me*s';
    let b = str.split('*')  
    console.log(b)   //["ja", "me", "s"]
    

    持续更新。。。(偷懒中)

  • 相关阅读:
    day 66 crm(3) 自创组件stark界面展示数据
    day 65 crm(2) admin源码解析,以及简单的仿造admin组件
    用 Python+nginx+django 打造在线家庭影院
    django -admin 源码解析
    day 64 crm项目(1) admin组件的初识别以及应用
    云链接 接口不允许 情况 解决方法 mysql Host is not allowed to connect to this MySQL server解决方法
    day 56 linux的安装python3 ,虚拟环境,mysql ,redis
    day55 linux 基础以及系统优化
    Codeforces 989 P循环节01构造 ABCD连通块构造 思维对云遮月参考系坐标轴转换
    Codeforces 990 调和级数路灯贪心暴力 DFS生成树两子树差调水 GCD树连通块暴力
  • 原文地址:https://www.cnblogs.com/xyf724/p/13619789.html
Copyright © 2011-2022 走看看