1. 程式人生 > 其它 >JavaScript字串學習總結(常用方法+小案例)

JavaScript字串學習總結(常用方法+小案例)

JavaScript 字串是由文字組成的值,可以包含字母、數字、符號、標點符號甚至表情符號。
作用:JavaScript 字串用於儲存和操作文字。

javascript字串

宣告字串只需要加雙引號或者單引號

var str = "vans"; 
console.log(str);//vans

訪問字串中的某個數,也可以用和陣列一樣的方法:

var str1 = "hello"
console.log(str1[0]);//h

//可以訪問,但是不能修改
str1[0] = "a";
console.log(str1);//hello

您可以在字串中使用引號,只要不和外面的引號相同就得了

var str1 = "let's go";
console.log(str1);

如何在字串中使用引號,且和外面的引號相同,那麼可以用轉義符號來轉義""如下:

var str2 = 'let\'s go';
console.log(str2);

執行結果:
在這裡插入圖片描述

length屬性

length屬性可以求出字串長度

var str = "vans";
var len = str.length;
console.log(len);//4

常用的方法

indexOf()

indexof()方法返回字串中指定文字首次出現的位置(起始位為0)

var
str = "audiquattro"; var aa = str.indexOf("a"); console.log(aa);//0

尋找最後一次出現的字元

var bb = str.lastIndexOf("a");
console.log(bb);//6

indexOf可以寫第二個引數,第二個引數為開始查詢的位置

var ee = str.indexOf("a",5);
console.log(ee);//6
search()

search() 方法搜尋特定值的字串,並返回匹配的位置,可以使用正則表示式匹配

var
str = "audiquattro"; var rch = str.search("u"); console.log(rch);//1

search() 方法無法設定第二個開始位置引數。

var rr = str.search("a",5);
console.log(rr);//0

index()和search()方法匹配不到字串裡的字元,那麼返回-1

var dd = str.indexOf("k");
console.log(dd);//-1

var rch1 = str.search("z");
console.log(rch1);//-1
slice()

slice() 提取字串的某個部分並在新字串中返回被提取的部分

var res0 = str.slice(0,4);
console.log(res0);//audi

如果寫一個引數,那麼就是從這個索引開始擷取,取到結尾,如:

var str = "audiquattro";
var res = str.slice(4);
console.log(res);//quattro      

如果某個引數為負,則從字串的結尾開始計數。

var res1 = str.slice(-4);
console.log(res1);//ttro
charAt()/charCodeAt()

charAt() 方法返回字串中指定下標(位置)的字串

var js = "JavaScript";
var atjs = js.charAt(0);
console.log(atjs);//J

charCodeAt() 方法返回字串中指定索引的字元 unicode編碼

var unjs = js.charCodeAt(0);
console.log(unjs);//74
trim()

trim() 方法刪除字串兩端的空白符

var brand = "     champion  ";
var trbr = brand.trim();
console.log(trbr);//champion       
replace()

replace() 方法用另一個值替換在字串中指定的值 對大小寫敏感

var str = "javascript";
var rep = str.replace("java","type");
console.log(rep);//typescript
//大小寫不敏感 /i
var rep1 = str.replace(/JAVA/i,"type");
console.log(rep1);//typescript
//全域性匹配 g
var rep2 = str.replace(/a/g,"A");
console.log(rep2);//jAvAscript
concat()

concat() 連線兩個或多個字串

var car = "BMW";
var car1 = "AUDI";
var my = "I like ";

var dream = my.concat(car);
console.log(dream);//I like BMW

var gdream = my.concat(car," and ",car1);
console.log(gdream);//I like BMW and AUDI
toUpperCase()/toLowerCase()

toUpperCase() 把字串轉換為大寫

var shoes = "vans";
var upsh = shoes.toUpperCase();
console.log(upsh);//VANS

toLowerCase() 把字串轉換為小寫

var shoes1 = "CONVERSE";
var losh = shoes1.toLowerCase();
console.log(losh);//converse
split()

split() 將字串轉換為陣列

var car = "Honda";
var arr = car.split();
console.log(arr);//["Honda"]
console.log(arr.length);//1

如果分隔符是 “”,被返回的陣列將是間隔單個字元的陣列

var arr1 = car.split("");
console.log(arr1);//["H", "o", "n", "d", "a"]

如果轉入引數這,則會根據該符號來分割字串

var car = "Honda";
var arr2 = car.split("-");
console.log(arr2);//["Honda"]

var hi = "h-e-l-l-o";
var hiarr = hi.split("-");
console.log(hiarr);//["h", "e", "l", "l", "o"]

案例

封裝一個字串去重的方法

方法一:

var abc = "abbcacba";
var chinese = "我來自中國,我愛中國";

function qcfn(str) {
    var res = "",
        len = str.length;
    for(var i = 0; i < len; i++){
        if(res.indexOf(str[i])  == -1){
            res += str[i];
        }
    }
    return res;
}

var result = qcfn(abc);
console.log(result);//abc

var result1 = qcfn(chinese);
console.log(result1);//我來自中國,愛

方法二(陣列去重也可以使用此方法):

var brand = "abbacba";
var arr = [1,2,4,1,5,2,4,5,2];
function fn(str) {
    var temp = {},
        len = str.length,
        res = "";
    for(var i = 0; i < len; i++){
        if(!temp[str[i]]){
            temp[str[i]] = "abc";
            res += str[i];
        }
    }
    return res;
}

var bb = fn(brand);
console.log(bb);//abc

var cc = fn(arr);
console.log(cc);//1245
封裝一個駝峰式命名的方法

有兩個引數,第一個是要轉換的單詞,第二個是單詞與單詞之間所用的連線符


function camelCase(str,f) {
    let arr = str.split(f),
        firstword = arr[0],
        len = arr.length,
        upword = "";
    for(var i = 1;i<len;i++){
        upword += arr[i].charAt(0).toUpperCase() + arr[i].slice(1);
    }
    return firstword + upword;
}

var cc1 = camelCase("my$first$name","$");
console.log(cc1);//myFirstName

var cc2 = camelCase("my-last-name","-");
console.log(cc2);//myLastName