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