美文网首页
字符串操作

字符串操作

作者: 陈裔松的技术博客 | 来源:发表于2018-12-13 15:08 被阅读0次

    知识点:字符串是基本数据类型,无论什么方法,字符串本身是不会变化的。

    slice():截取字符串 (与数组的slice方法类似)
    //slice(start, end) 截取子字符串
    var str="hello world";
    
    console.log(str.slice(7,10));   // 返回值是截取后的字符串:"orl"
    console.log(str.slice(9,1));    // 返回值是截取后的字符串:空
    console.log(str.slice(-2,1));   // 返回值是截取后的字符串:空 (-2代表倒数第二个字符)
    console.log(str.slice(-2,10));  // 返回值是截取后的字符串:"l"
    console.log(str);               // 字符串本身保持不变:hello world
    
    substring():截取字符串
    //substring(start,end)
        //负数的情况,装换为0
        //会比较start和end,认为数值小的是start,数字大的是end
    var str="hello world";
    
    console.log(str.substring(7,10));   // 保持不变     // 返回值是截取后的字符串:"orl"
    console.log(str.substring(-7,5));   // 相当于(0,5) // 返回值是截取后的字符串:"hello"
    console.log(str.substring(-4,-7));  // 相当于(0,0) // 返回值是截取后的字符串:空
    console.log(str.substring(2,-5));   // 相当于(0,2) // 返回值是截取后的字符串:"he"
    console.log(str.substring(3,1));    // 相当于(1,3) // 返回值是截取后的字符串:"el"
    console.log(str);                                 // 字符串本身保持不变:"hello world"
    
    substr():截取字符串
    //substr(start,len)
        //start:必须,指定子字符串的开始位置
        //len:可选,表示截取的字符总数,省略是时截取至字符串的末尾
        //当start为负数时,将负值与字符串的长度相加
        //当len为负数时,返回空字符串 
    var str="hello world";
    
    console.log(str.substr(6, 3));  // 返回值是截取后的字符串:"wor"
    console.log(str.substr(-5, 4)); // 返回值是截取后的字符串:"worl"
    console.log(str.substr(3, 0));  // 返回值是截取后的字符串:空
    console.log(str.substr(3, -1)); // 返回值是截取后的字符串:空
    console.log(str); // 字符串本身保持不变:"hello world"
    
    split():把一个字符串分割成字符串数组 (与数组的join方法相反)
    // stringObject.split(separator)
    
    var str = "welcom-to-beijing"
    var arr = str.split("-");
    console.log(arr);   // 返回值是转换后的数组:["welcome","to","beijing"]
    console.log(str);   // 字符串本身保持不变:"welcom-to-beijing"
    
    var date = "2016/05/05";
    var dateArr = date.split("/");
    console.log(dateArr);   // 返回值是转换后的数组:["2016", "05", "05"]
    console.log(date);      // 字符串本身保持不变:"2016/05/05"
    
    replace():把字符串中的字符替换成其他字符
    // stringObject.replace(regexp/substr,replacement)
    var tel = "010-12345678,400-100-9098,101-87654321";
    var newTel1 = tel.replace(",", "  ");   //替换第一个
    var newTel2 = tel.replace(/,/g, "  ");  //替换所有
    
    console.log(newTel1);   // 返回值是替换后的字符串:"010-12345678  400-100-9098,101-87654321"
    console.log(tel);       // 字符串本身保持不变:"010-12345678,400-100-9098,101-87654321"
    
    console.log(newTel2);   // 返回值是替换后的字符串:"010-12345678  400-100-9098  101-87654321"
    console.log(tel);       // 字符串本身保持不变:"010-12345678,400-100-9098,101-87654321"
    
    toUpperCase() , toLowerCase():大小写转换
    //toUpperCase()
    var str1="hello world";
    console.log(str1.toUpperCase());    // 返回值是转换后的字符串:"HELLO WORLD"
    console.log(str1);                  // 字符串本身保持不变:"hello world"
    
    //toLowerCase()
    var str2="WELCOME";
    console.log(str2.toLowerCase());    // 返回值是转换后的字符串:"welcome"
    console.log(str2);                  // 字符串本身保持不变:"WELCOME"
    
    charAt():取得index位置的字符
    //stringObject.charAt(index)
    
    var str = "hello word";
    console.log(str.charAt(0));     // 返回index位置的字符:'h'
    
    charCodeAt():取得index位置的字符编码
    //stringObject.charCodeAt(index)
    
    var str = "hello word";
    console.log(str.charCodeAt(4)); // 返回index位置字符的字符编码:111
    
    indexOf():取得子字符串的下标
    var email = "marryoo@sohu.com";
    console.log(email.indexOf("o"));        // 返回子字符串的位置:5
    console.log(email.indexOf("x"));        // 返回子字符串的位置:-1(没有找到)
    
    // 以下两种判断方式是一样的
    if(email.indexOf("o") !== -1){
        console.log('存在o');
    }
    
    // ~x 的意思是 -(x + 1)
    if(~email.indexOf("o")){
        console.log('存在o');
    }
    
    lastIndexOf():取得子字符串的下标
    var email = "marryoo@sohu.com";
    console.log(email.lastIndexOf("o"));    // 返回子字符串的位置:14
    

    相关文章

      网友评论

          本文标题:字符串操作

          本文链接:https://www.haomeiwen.com/subject/asqbhqtx.html