zoukankan      html  css  js  c++  java
  • 数据处理:字符串的常用方法

    .trim()去除空格

    用户输入操作一般需要,去除空格
    .trim()只去除字符串开头与结尾的空格,中间的不会去除

    let str = "   hello yimi    ";
    str.trim()// "hello yimi"  
    

    replace 正则匹配方法

    1.去除空格

    去除字符串内所有的空格:str = str.replace(/s*/g,"");
    
    去除字符串内两头的空格:str = str.replace(/^s*|s*$/g,"");
    
    去除字符串内左侧的空格:str = str.replace(/^s*/,"");
    
    去除字符串内右侧的空格:str = str.replace(/(s*$)/g,"");
    

    2.隐藏几位信息号
    展示是,为保密用户信息可只展示部分,如:银行卡号,手机号,身份证号等

    '123456789'.replace(/(?<=^.{0,2})./g, '*') 
    // "***456789"    前三个
    
    '123456789'.replace(/.(?=.{0,2}$)/g, '*') 
    // "123456***"    后三个
    
    var str = '123456789'
    str.substr(0,parseInt(str.split('').length/2))+'**'+str.substr(parseInt(str.split('').length/2+2),str.split('').length)
    //"1234**789"    //   str.substr(0,4)    str.substr(6,9)     9表总长度   4.5取整   4几位   6表index=6(重0开始)
    

    split 将字符串截取成数组

    let url=window.location.href
    let pars=url.split("?")[1]  //pars会是一个数组
    //例如 https://i.cnblogs.com/EditPosts.aspx?postid=1018802,8&update=1
    //执行到split("?")[1]  =>  "postid=1018802,8&update=1"
    

    slice字符串截取

    1.截取掉前几位(一个参)

    //      /static/upload/32.png    //后台返回图片地址
    //	    https://www.cnblogs.com/missme-lina/p/32.png  //目标图片地址
    
    
        var str = img_url;
    str = str.slice(15);//截取掉前15位  保留15位后的
    var imgUrl = "https://huiji.2lsol.cn/huiji/upload/"+str;
    $("#imgCon").attr("src",imgUrl);
    
        var str = "The morning is upon us.";  
        str.slice(-3);     // "us."  
    

    2.截取第几位到第几位(两个参)

    var str1 = "The morning is upon us.";  
    console.log(str1.slice(4, -2));   //  morning is upon u  
    str.slice(-3, -1); // "us"  
    str.slice(0, -1);  // "The morning is upon us"
    

    indexOf() 匹配是否存在某段字符串

    indexOf(kw) 有返回下标;没有返回-1

    let keyword = "hello";
    let str = "hello yimi";
    str.indexOf(keyword)//0
    

    字符串转换大小写

    toUpperCase()转换大写
    toLowerCase()转换小写

    let str1 = "adABDndj";
    console.log(str1.toUpperCase());//"ADABDNDJ"
    console.log(str1.toLowerCase());//"adabdndj"
    

    字符串拼接concat()

    let str = "abc";
    console.log(str.concat("efg"));//"abcefg"
    console.log(str.concat("efg","hijk"));//"abcefghijk"
    

    字符串切割 slice() substring() substr()

    let str = "abcdefg";
    

    slice只传两个值个值,则表示左闭右开,不包括结束位置的值
    传入一个值,则表示,才起始位开始,把字符串切割完
    不传值,则切割整个字符串
    也可以传入负数,字符串倒数第一位为-1

    console.log(str.slice(1,6));//"bcdef" [1,6)
    console.log(str.slice(1)); //"bcdefg" [1,str.length-1]
    console.log(str.slice());//"abcdefg" [0,str.length-1]
    console.log(str.slice(-2));//"fg"
    console.log(str.slice(6, 1));//""
    

    用法和slice基本相同,只不过substring,传入的第一个值比第二个值大
    时,默认会进行从小值切到大值的处理
    以及传入负数,会切割整个字符串

    console.log(str.substring(1,6));//"bcdef" [1,6)
    console.log(str.substring(1)); //"bcdefg" [1,str.length-1]
    console.log(str.substring());//"abcdefg" [0,str.length-1]
    console.log(str.substring(6,1));//"bcdef" [1,6)
    console.log(str.substring(-1));//"abcdefg"
    

    substr 第一个参数表示开始切割的起始位置
    第二个参数表示切割的长度
    传一个值和不传值的表现和slice相同
    也可以传入负值

    console.log(str.substr(1,6));//"bcdefg" 6代表切割的length
    console.log(str.substr(1)); //"bcdefg" [1,str.length-1]
    console.log(str.substr());//"abcdefg" [0,str.length-1]
    console.log(str.substr(-1));//"g"
    

    字符串

  • 相关阅读:
    hdu 1588 求f(b) +f(k+b) +f(2k+b) +f((n-1)k +b) 之和 (矩阵快速幂)
    poj 3233 S = A + A^2 + A^3 + … + A^k A是一个n X n矩阵 (矩阵快速幂)
    hdu 1757 和1005差不多 (矩阵快速幂)
    D 矩阵快速幂
    poj 3734 方块涂色 求红色 绿色方块都为偶数的方案数 (矩阵快速幂)
    hdu 1005 根据递推公式构造矩阵 ( 矩阵快速幂)
    hdu 4549 M斐波拉契 (矩阵快速幂 + 费马小定理)
    UVa 1643 Angle and Squares (计算几何)
    UVa 11040 Add bricks in the wall (水题递推)
    UVa 1336 Fixing the Great Wall (区间DP)
  • 原文地址:https://www.cnblogs.com/missme-lina/p/10215043.html
Copyright © 2011-2022 走看看