JS 字符串操作總結
【MDN】https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String
【參考】https://www.cnblogs.com/guoyeqiang/p/8178336.html
字符串轉換
1、toString()
var age = 11; var ageAsString = age.toString(); //字符串“11” var found = true; var foundAsString = found.toString();//字符串“true”
默認情況下,toString()方法返回的是10進制格式返回數值的字符串表示。但是也可以輸出二進制、八進制、十六進制。
var num=10; num.toString();//"10" num.toString(2);//"1010" num.toString(8);//"12" num.toString(10);//"10" num.toString(16);//a
一般的值都有這個方法,但是null和undefined是沒有這個方法的,在不知道要轉換的值是不是null 或者undefined的情況下,可以使用轉型函數String()
2、String()
如果值有toString()方法的話,就會調用toString方法。如果是null,返回"null",如果是undefined的話,返回"undefined"
String(true);//"true" String(null);//"null" String(undefined);//undefined String(10);//"10"
3、+字符串拼接
var num=24; var mystr="" + num; //"24"
字符方法
1、charAt()
2、charCodeAt()
3、codePointAt() ES6
能正確返回字非BMP字符集上的字符長度
4、fromCodePoint() ES6
5、normalize() ES6
字符串連接
1、concat() [String.prototype.concat()]=>MDN
方法將一個或多個字符串與原字符串連接合並,形成一個新的字符串並返回,並不影響原本的字符串。
str.concat(string2, string3[, ..., stringN])
var hello = "Hello, "; console.log(hello.concat("Kevin", " have a nice day.")); /* Hello, Kevin have a nice day. */
2、+ 操作符拼接
強烈推薦使用加法操作符,因為加法操作符的性能更好
var mystr1="Hello"; var mystr2="world!"; var newStr=mystr1+" "+mystr2; //Hello world!
字符串分隔
1、splite() [String.prototype.splite]=>MDN
方法使用指定的分隔符字符串將一個String
對象分割成字符串數組,以將字符串分隔為子字符串,以確定每個拆分的位置。
str.split([separator[, limit]])
截取字符串中的子字符串
1、slice() [String.prototype.slice]=>MDN
方法提取一個字符串的一部分,並返回一新的字符串。
str.slice(beginSlice[, endSlice])
slice()
提取的新字符串包括beginSlice
但不包括 endSlice。
2、substr() [String.prototype.substr]=>MDN
方法返回一個字符串中從指定位置開始到指定字符數的字符。
str.substr(start[, length])
3、substring() [String.prototype.substring]=>MDN
方法返回一個字符串在開始索引到結束索引(不包括)之間的一個子集, 或從開始索引直到字符串的末尾的一個子集。
str.substring(indexStart[, indexEnd])
關於slice和substring之間的區別:
stringObj.slice(start, [end])
如果 start 為負,將它作為 length + start處理,此處 length 為數組的長度。如果 end 為負,就將它作為 length + end 處理,此處 length 為數組的長度。如果省略 end ,那麽 slice 方法將一直復制到 arrayObj 的結尾。如果 end 出現在 start 之前,不復制任何元素到新數組中。
strVariable.substring(start, end)
如果 start 或 end 為 NaN 或者負數,那麽將其替換為0。
子字符串的長度等於 start 和 end 之差的絕對值。例如,在 strvar.substring(0, 3) 和 strvar.substring(3, 0) 返回的子字符串的的長度是 3。
字符串位置方法
1、indexOf() [String.prototype.indexOf]=>MDN
方法返回調用 String
對象中第一次出現的指定值的索引,開始在 fromIndex進行搜索。如果未找到該值,則返回-1。
str.indexOf(searchValue[, fromIndex]
)
2、lastIndexOf() [String.prototype.lastIndexOf]=>MDN
方法返回指定值在調用該方法的字符串中最後出現的位置,如果沒找到則返回 -1。從該字符串的後面向前查找,從 fromIndex
處開始。
字符串大小寫轉換
1、toLocaleUpperCase [String.prototype.toLocaleUpperCase]=>MDN
使用本地化(locale-specific)的大小寫映射規則將輸入的字符串轉化成大寫形式並返回結果字符串。
str.toUpperCase()
2、toLocaleLowerCase [String.prototype.toLocaleLowerCase]=>MDN
方法根據任何特定於語言環境的案例映射,返回調用字符串值轉換為小寫的值。
str.toLowerCase()
3、toLowerCase [String.prototype.toLowerCase]=>MDN
str.toLowerCase()
4、toUpperCase [String.prototype.toUpperCase]=>MDN
str.toUpperCase()
字符串的匹配模式
1、match() [String.prototype.match]=>MDN
當一個字符串與一個正則表達式匹配時, match()
方法檢索匹配項。
str.match(regexp);
2、search() [String.prototype.search]=>MDN
方法執行正則表達式和 String
對象之間的一個搜索匹配。
str.search(regexp)
字符串替換
1、replace() [String.prototype.replace]=>MDN
方法返回一個由替換值替換一些或所有匹配的模式後的新字符串。模式可以是一個字符串或者一個正則表達式, 替換值可以是一個字符串或者一個每次匹配都要調用的函數。
str.replace(regexp|substr, newSubStr|function)
字符串去除空格
1、trim() [String.prototype.trim]=>MDN
方法會從一個字符串的兩端刪除空白字符。在這個上下文中的空白字符是所有的空白字符 (space, tab, no-break space 等) 以及所有行終止符字符(如 LF,CR)。trim() 方法
並不影響原字符串本身,它返回的是一個新的字符串。
str.trim()
JS 字符串操作總結