關於String的屬性和方法

 

1、關於String的屬性和方法

String做爲JavaScript的內置函數,String.prototype繼承於Object.prototype,同時String.prototype上內置了不少方法:正則表達式

nchor()、big()、blink()、bold()、charAt()、charCodeAt()、codePointAt()、concat()、String()、endsWith()、fixed()、 fontcolor()、fontsize()、includes()、indexOf()、italics()、 lastIndexOf()、length、link()、localeCompare()、match()、 normalize()、padEnd()、padStart()、repeat()、replace()、search()、slice()、small()、split()、startsWith()、strike()、sub()、substr()、 substring()、sup()、toLocaleLowerCase()、toLocaleUpperCase()、toLowerCase()、toString()、toUpperCase()、trim()、trimLeft()、 trimRight()、valueOf()、[Symbol.iterator]()、__proto__: Object

 

var str = "abc123ABC"; var str1 = "Concat1"; var str2 = "Concat2";

 

一、字符串的length屬性數組

console.log(str.length); // 9


二、字符串的方法
a. concat函數

console.log(str.concat(str1, str2)); // abc123ABCConcat1Concat2


==> 返回新的字符,不改變原字符串this

b. slice(start,end)spa

console.log(string.slice(0, 3)); // abc ==> 下標[0, 3)
console.log(string.slice(-3)); // ABC ==> 倒數第3位到結束
console.log(string.slice(-6, -3)); // 123 ==> 倒數下標[-6, -3)


==> slice(start,end)==>返回一個新的字符串。包括字符串 stringObject 從 start 開始(包括 start)到 end 結束(不包括 end)爲止的全部字符。當沒有第二個參數時,截止到最後。prototype

==> 當只有一個參數,而且這個參數爲負數時,表示從字符串尾部開始,-1表示倒數第一開始,n表示倒數第n開始到最後。code


c. substring(start,end)regexp

console.log(str.substring(0, 3)); // abc ==> 下標[0, 3)
console.log(str.substring(-2, 3)); // abc ==> -2轉化爲0,下標[0, 3)
console.log(str.substring(-2, -3)); // abc ==> -2和-3轉化爲0,爲空字符串 // substring和slice差很少,只是不支持負數,轉換爲0


d. substr(start,lenght)orm

console.log(str.substr(0, 5)); // abc12
console.log(str.substr(-3, 5)); // ABC
console.log(str.substr(-3)); // ABC
console.log(str.substr(-3, -5)); // ABC


//和上面兩個不一樣的是substr的第二個參數表示截取字符串的長度,若是隻有一個參數和slice相同,若是第二個參數爲爲負數轉換爲0對象

//還要注意的是,String.slice() 與 Array.slice() 類似。


對以上三個方法的總結:
一、只接受兩個參數,返回新的字符串,不改變原字符串
二、slice ==> 參數能夠爲負
subString ==> 參數都不能夠爲負,自動轉換爲0
subStr ==> 第一個參數能夠爲負,第二個參數表示的是字符串的長度,不能爲負數,自動轉換爲0

e. indexOf(string, start)和lastIndexOf(string, start)

indexOf搜索目標字符串的開始索引,第一個參數只能是字符串,且對大小寫敏感,只返回第一個的位置索引; indexOf第二個參數表示從該索引開始搜索,只能爲正數,負數自動轉化爲0。

lastIndexOf從後往前搜索目標字符串的開始索引,第一個參數只能是字符串,且對大小寫敏感,只返回最後一個的位置索引; indexOf第二個參數只能爲正數,負數返回結果爲-1找不到。它的合法取值是 0 到 stringObject.length - 1。如省略該參數,則將從字符串的最後一個字符處開始檢索。

var str = '123abcABC123abcABC123abcABC123abcABC'; console.log(str.indexOf('abc')); // 3
console.log(str.indexOf('dddd')); // -1 ==> 找不到
 str.indexOf('abc', 6); // 12
str.indexOf('abc', -6); // 3
 str.lastIndexOf('abc', 4); // 3
str.lastIndexOf('abc', -4); // -1
str.lastIndexOf('abc', 14); // 12

 

f. search(sting/RegExp)

搜索目標字符串的開始索引,參數能夠是字符串或者正則,對大小寫敏感,正則能夠忽略大小寫敏感。 只返回第一個的位置索引,因此即便是全局匹配g也是返回第一個的位置索引; 特別注意:search方法只接收一個參數。

var str = '123abcABC123abcABC123abcABC123abcABC'; console.log(str.search('abc')); // 3
console.log(str.search(/Abc/ig)); // 3
console.log(str.search(/Abc/ig, 6)); // 3
console.log(str.search('dddd')); // -1 ==> 找不到

 

indexOf:不支持正則,支持指定起始位置開始搜索(負數時轉化爲0),有lastIndex反向搜索 search:支持正則和字符串,不支持指定起始位置開始搜索

g. match(searchvalue, regexp)

match() 方法可在字符串內檢索指定的值,或找到一個或多個正則表達式的匹配。
該方法相似 indexOf() 和 lastIndexOf(),可是它返回指定的值,而不是字符串的位置。

searchvalue 必需。規定要檢索的字符串值。
regexp 必需。規定要匹配的模式的 RegExp 對象。若是該參數不是 RegExp 對象,則須要首先把它傳遞給 RegExp 構造函數,將其轉換爲 RegExp 對象。

var str = '123abcABC123abcABC123abcABC123abcABC'; console.log(str.match('abc')); // ["abc"]
console.log(str.match(/abc/)); // ["abc"]
console.log(str.match(/abc/g)); // ["abc", "abc", "abc", "abc"]
console.log(str.match(/\d+/g)); // ["123", "123", "123", "123"]


h. replace(str/RegExp, repalcement) 第一個參數時字符串或正則,字符串只能替換第一個,正則能夠匹配設置(ig); 第二個參數repalcement若是是字符串那麼就只接替換,repalcement能夠是函數。

var str = '123abcABC123abcABC123abcABC123abcABC'; console.log(str.replace('abc', 'RRR')); // "123RRRABC123abcABC123abcABC123abcABC"
 console.log(str.replace(/abc/ig, 'RRR')); // "123RRRRRR123RRRRRR123RRRRRR123RRRRRR"

 

i. trim() ==> IE9如下沒有這個方法,要作兼容,以下:

//console.log("trim()==>空格處理:")
String.prototype.ltrim=function() {  return this.replace(/^\s*/g,""); }; String.prototype.rtrim=function() {  return this.replace(/\s*$/g,""); }; String.prototype.trim=function() {  return this.replace(/(^\s*)|(\s*$)/g,""); };

 

j. 字符串比較

log(str.localeCompare(str1)); //-1
log(str1.localeCompare(str)); //1
log(str.localeCompare(str)); // 0


k. 字符串大小寫轉換

log(str.toUpperCase()); // ABC123ABC
log(str.toLocaleUpperCase()); // ABC123ABC
 log(str.toLowerCase()); // abc123abc
log(str.toLocaleLowerCase()); // abc123abc

 

l. split ==> 將字符串轉換爲數組

var arr = str.split(''); console.log(arr); //["a", "b", "c", "1", "2", "3", "A", "B", "C"]

 

join ==> 將數組轉換爲字符串

console.log(arr.join('')); // abc123ABC

 


2、支持正則表達式的 String 對象的方法

search、match、replace、split
相關文章
相關標籤/搜索