字符串中的12種經常使用方法

定義:全部用單引號、雙引號、反引號包起來的都是字符串數組

字符串的方法都不改變原字符串瀏覽器

字符串的方法都不改變原字符串而數組的方法有改變原數組的緣由: bash

  • 字符串是基本類型值,每個操做都是直接操做值,對原始字符串不會產生任何影響ui

  • 數組之因此會有改變原數組的狀況,是由於他是對象類型,操做的堆內存,方法的執行頗有可能把原始堆內存中的信息改變了;編碼

(每個字符串都是由零到多個字符組成的)spa

與數組類似
let str = '1111122222';
str.length//==>字符串長度
str[0]//==>獲取索引爲零(第一個)字符
str[str.length-1]//==>獲取最後一個字符
str[10000]//==>undefined不存在這個索引
複製代碼

1、字符查找

一、charAt

  • 定義:獲取字符串中指定索引對應的字符
  • @params:n:number類型,表明索引
  • @return:返回查找到的字符;找不到返回空字符串(不是undefined)

使用方法:str.charAt(索引)3d

var str="xuexi"
var res=str.charAt(0);//"x"
var res3=str[0];//"x"
var res2=str.charAt(100);//""
var res4=str[100];//undefined
複製代碼

相比較 str[索引] 的優勢code

  • charAt索引過大或太小時返回空字符串,str[索引]返回undefined

二、charCodeAt(做爲了解)

  • 定義:獲取字符串中指定索引對應的ASCII碼值(unicode編碼值)
  • @params:n:number類型,表明索引
  • @return:返回查找到的unicode編碼值,找不到返回空字符串不是undefined

使用方法:str.charCodeAt(索引)cdn

  • 基本不用(做爲了解)
var str="zheli";
var res=str.charCodeAt(0);//122   對應的就是字母z(10進制值)
String.fromCharCode(122);//z 經過編碼值找對應字符
複製代碼

2、字符串截取

三、substr

  • 定義:爲了實現字符串的截取(在原來字符串中查找到本身想要的)
  • @params:n,m //選中從索引 n 開始,截取 m 個字符(m不寫,截取到末尾)
  • @return:截取的字符串

使用方法:substr(n,m)對象

let str = 'haohaoxunxitiantianxiangshang'
str.substr(3,6);//==> 'haoxun'
str.substr(3);//==>'haoxunxitiantianxiangshang'截取到末尾
str.substr(3,10000);//==>'haoxunxitiantianxiangshang'截取到末尾(超過索引的也只截取到末尾)
複製代碼

四、substring

  • 定義:爲了實現字符串的截取(在原來字符串中查找到本身想要的)
  • @params:n,m //選中從索引n開始(包含)到索引m(不包含)結束的字符
  • @return:截取的字符串

使用方法:str.substring(n,m)

let str = 'haohaoxunxitiantianxiangshang'
str.substring(3,6);//==> 'haox'
str.substring(3);//==>'haoxunxitiantianxiangshang'截取到末尾
str.substring(3,10000);//==>'haoxunxitiantianxiangshang'截取到末尾(超過索引的也只截取到末尾)
複製代碼

五、slice(支持負數)

  • 定義:爲了實現字符串的截取(在原來字符串中查找到本身想要的)
  • @params:n,m //選中從索引n開始(包含)到索引m(不包含)結束的字符
  • @return:截取的字符串

使用方法:str.slice(n,m)

var str="xuexi"
var res=str.slice(0,3);//"xue"

var res1=str.slice();//徹底複製
var res1=str.slice(0);//徹底複製
複製代碼
  • 能夠支持負數索引(其他兩個方法不能是負數索引)
    • 負數索引的規律:用字符串的長度加上負數索引
var str="xuexi"

var res=str.slice(-3,-1);//"ex"
str.slice(2,4)//"ex"
複製代碼

substring與slice的區別:substring不支持負數索引

3、檢測是否包含某項

六、indexOf

  • 定義:獲取字符在字符串中首次出現的索引
  • @params:x,y //獲取x第一次出現位置的索引,y是控制查找的起始位置索引
  • @return:索引值/-1(字符串中不包含此字符)

使用方法:indexOf(x,y)

  • 總體與數組中方法相似
  • 兼容全部版本瀏覽器
let str = 'haohaoxunxitiantianxiangshang'

str.indexOf('a');//==> 1
str.indexOf('@');//==>-1  不存在返回-1
str.indexOf('xunxi');//==>6  驗證總體第一次出現的位置,返回的索引是第一個字符所在位置的索引
str.indexOf('xunt');//==>-1  不是總體返回-1
str.indexOf('a',7);//==> 13  查找字符串索引7及之後的字符串中,a第一次出現的位置索引
複製代碼

七、lastIndexOf

  • 定義:獲取字符在字符串中最後一次出現的索引
  • 與indexOf用法相同

八、includes

  • 定義:檢測當前字符串中是否包含某個字符
  • @params:字符
  • @return:布爾,true 包含,false 表明不包含

使用方法:includes(n);

  • 總體與數組中方法相似
if(!str.includes('@'))
    {
        ...
    } //用來判斷條件是否成立
複製代碼

4、大小寫轉換

九、toUpperCase

  • 定義:轉爲大寫
  • @params:無
  • @return:大寫的字符

使用方法:str.toUpperCase()

str.substr(0,1).toUpperCase()+str.substr(1);//總體爲小寫的狀況下只讓第一個字母大寫
複製代碼

十、toLowerCase

  • 定義:轉爲小寫
  • @params:無
  • @return:小寫的字符

使用方法:res.toLowerCase()

5、字符串轉數組

十一、split

  • 定義:把字符串按照指定的分隔符拆分紅數組(和數組中的join對應)
  • @params:分隔符
  • @return:分隔後的數組

使用方法:str.split()

'|'分隔符變爲','分隔符

let str = 'music|movie|eat|sport';
let ary = str.split('|');//==>['music','movie','eat','sport']
//先利用split把字符串按|分割
res= ary.join(',');
//利用join在轉換回字符串
console.log(res);//==>'music,movie,eat,sport'
//===============================================//
var str="2018 8 18"
var res=str.split(" ")//["2018","8","18"]
複製代碼

6、字符替換

十二、replace

  • 定義:把指定的字符替換成別的字符
  • @params:老字符(也能夠跟正則),新字符;//經常使用正則應用
  • @return:替換以後的字符串

使用方法:str.replace("@","哈")

在不使用正則的狀況下,一次只能替換一個字符

正則:str.replace(/@/g,"哈");

var str="@feng@feng";
var res=str.replace("@","哈");//"哈feng@feng"
var res=str.replace(/@/g,"哈");//"哈feng哈feng 複製代碼

後續補充

  • match
  • localCompare
  • trim/trimLeft/trimRight
  • ......等

相關文章
相關標籤/搜索