原文鏈接:https://mrzhang123.github.io/...
字符方法 chartAt()與charCodeAt()參數:基于0的字符位置
chartAt()以單字符字符串的形式返回給定位置的那個字符。而charCodeAt()返回的是字符編碼。
var stringValue = "hello world"; /*chartAt()*/ console.log(stringValue.chartAt(1)); // "e"字符串操作方法 concat()(數組中也有該方法)
參數:一個或多個字符串
將一個會多個字符串拼接起來,當然更常用的是使用 “+” 進行拼接
substring()與slice()(數組中也有此方法)參數:指定子字符串的開始位置,子字符串到哪里結束
作用:創建新的子字符串(可以理解為字符串截取)
substr()參數:指定子字符串的開始位置,返回的子字符串的字符個數
作用:創建新的子字符串(可以理解為字符串截?。?/p> repeat()(ES6新增)
參數:數字(表示重復的次數)
作用:將原字符串重復n次
如果傳入負數,則報錯,傳入小數和NaN等同于傳入0
substring,slice,substr,repeat均返回子字符串,不會修改原來的字符串
var stringValue = "hello world"; alert(stringValue.slice(3)); //"lo world" alert(stringValue.substring(3)); //"lo world" alert(stringValue.substr(3)); //"lo world" alert(stringValue.slice(3, 7)); //"lo w" alert(stringValue.substring(3,7)); //"lo w" alert(stringValue.substr(3, 7)); //"lo worl" /*repeat()*/ var a = "he"; var b = a.repeat(3); console.log(`${a}---$`); / //"he---hehehe"
當給這三個方法傳入負值的時候,三個的表現不同:
slice()會將傳入的負值與字符串的長度相加
substr()會將第一個位置的負值參數加上字符串長度后轉為正數,而第二個位置的負值將轉化為0
substring()會把所有的負參數轉化為0
repeat()會報錯
字符串位置方法 indexOf()和lastIndexOf()(數組中也有該方法)參數:要搜索的子字符串,開始搜索的位置(可選)
搜索給定的子字符串,如果找到則返回位置,否則返回-1
var stringValue = "hello world"; alert(stringValue.indexOf("o")); //4 alert(stringValue.lastIndexOf("o")); //7
這兩個方法在搜索到第一個匹配的子字符串后就停止運行,所以如果想找到字符串中所有的
子字符串出現的位置,可以循環調用indexOf或lastIndexOf。
var stringValue = "Lorem ipsum dolor sit amet, consectetur adipisicing elit"; var positions = new Array(); var pos = stringValue.indexOf("e"); while(pos > -1){ positions.push(pos); pos = stringValue.indexOf("e", pos + 1); } alert(positions); //"3,24,32,35,52"ES6新增includes()、startsWith()、endsWith()
includes():返回布爾值,表示是否找到了參數字符串
startsWith():返回布爾值,表示參數字符串是否在源字符串的頭部
endsWith():返回布爾值,表示參數字符串是否在源字符串的尾部
這三個方法的參數與indexOf(),lastIndexOf()一樣
var s = "Hello world"; s.startsWith("world",6); // true s.endsWith("Hello",5); // true s.includes("Hello",6); //false
注意:
使用第2個參數n時,endsWith的行為與其他兩個方法有所不同。它針對前面n個字符,而其他兩個方法針對從第n個位置開始直到字符串結束的字符。
ES5中新增trim()方法用于去除字符串的左右空格,該方法會創建一個字符串的副本,不會改變原有的字符串,此外,Firefox 3.5+、Safari 5+
和 Chrome 8+還支持非標準的 trimLeft()和 trimRight()方法,分別用于刪除字符串開頭和末尾的
空格。
其實去空格可以使用正則去匹配的去掉,這里寫一個去空格函數
/*trim 去掉空白 str要處理的字符串 [type] 類型:l 去除左邊的空白 r去除右邊空白 b去掉兩邊的空白 a去除所有空白*/ function trim (str,type) { var type=type||"b"; if(type=="b"){ return str.replace(/^s*|s*$/g,""); }else if(type=="l"){ return str.replace(/^s*/g,""); }else if(type=="r"){ return str.replace(/s*$/g,""); }else if(type=="a"){ return str.replace(/s*/g,""); } }字符串大小寫轉換 toLowerCase()、toLocaleLowerCase()、toUpperCase()和 toLocaleUpperCase() 字符串的模式匹配方法 match()
參數:一個正則表達式或RegExp對象
返回一個數組。在字符串上調用這個方法本質上與調用RegExp的exec()方法相同。
var text = "cat, bat, sat, fat"; var pattern = /.at/; //與 pattern.exec(text)相同 var matches = text.match(pattern); alert(matches.index); //0 alert(matches[0]); //"cat" alert(pattern.lastIndex); //0search()
參數:一個正則表達式或RegExp對象
返回字符串中第一個匹配項的索引,如果沒有找到,則返回-1
var text = "cat, bat, sat, fat"; var pos = text.search(/at/); alert(pos); //1replace()
參數:一個RegExp對象或者一個字符串(這個字符串不會被轉換成正則表達式),一個字符串或一個函數
利用replace()進行替換的時候,如果傳入的是字符串,則只會替換第一個子字符串,要想替換所有的子字符串,則需要傳入一個正則表達式,而且要指定全局(g)標志
var text = "cat , bat , sat , fat"; var result = text.replace("at","ond"); console.log(result); // =>"cont , bat , sat , fat" result = text.replace(/at/g,"ond"); console.log(result); //=>"cont , bont , sont , font"
該方法并不改變調用它的字符串本身,只是返回一個新的替換后的字符串。
當第二個參數為函數時函數的返回值作為替換字符串。與第二個參數是字符串一樣,如果第一個參數是正則表達式,并且全局匹配,則這個函數的方法將被多次調用,每次匹配都會被調用。
該函數的參數:
match:匹配的子串
p1,p2...:假如replace()方法的第一個參數是RegExp對象,則代表第n個括號匹配的字符串。
offset:匹配到的子字符串在原字符串中的偏移量。(比如,如果原字符串是“abcd”,匹配到的子字符串時“bc”,那么這個參數是1)
被匹配的原字符串
function replacer(match , p1 , p2 , p3 , offset , string){ // p1 is nondigits, p2 digits, and p3 non-alphanumerics console.log(`${match} ${p1} ${p2} ${p3} ${offset} ${string}`); /* => abc12345#$*% abc 12345 #$*% 0 abc12345#$*%" */ console.log([p1, p2, p3].join(" - ")); // => "abc - 12345 - #$*%" return [p1, p2, p3].join(" - "); } var newString = "abc12345#$*%".replace(/([^d]*)(d*)([^w]*)/, replacer); // =>"abc - 12345 - #$*%"split()
參數:用于分隔字符串的分隔符,數字(可選,用于指定數組的大?。?/em>
作用:基于指定的分隔符將一個字符串分割成多個子字符串,并將結果放在一個數組中,分隔符可以是字符串,也可以是RegExp對象
var color = "red,blue,yellow,black"; var color1 = color.split(","); // =>["red","blue","yellow","black"] var color2 = color.split(",",2); // =>["red","blue"] var color3 = color.split(/[^,]+/); // =>["", ",", ",", ",", ""]
最后一個調用split的時候,出現了前后的兩個空白,是因為通過正則表達式指定的分隔符出現在了字符串的開頭和結尾。
localeCompare()這個方法用于比較兩個字符串,并返回下列值中的一個:
如果字符串在字母表中應該排在字符串參數之前,則返回負數(大多情況下為-1)
如果相等,則返回0
如果排在字符串參數之前,則返回正數(大多數情況下為1)
fromCharCode()String構造函數的一個靜態方法
參數:一個或多個字符串編碼
作用:將接收到的一個或多個字符串編碼轉換成一個字符串,這個方法與實例方法charCodeAt()執行相反的操作。
/*fromCharCode*/ String.fromCharCode(104,101,108,108,111); // =>hello /*charCodeAt*/ let s = "hello"; for(let i=0;i最后寫一個字符串與數組方法應用的一個例子,熟悉它們方法的話很簡單,不熟悉就會覺得有點兒亂。
let s = "hello"; let news = s.split("").reverse().join(""); console.log(news); // => "olleh"另附js中String和Array方法的總結圖:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/90865.html
摘要:前綴規范每個局部變量都需要有一個類型前綴,按照類型可以分為表示字符串。例如,表示以上未涉及到的其他對象,例如,表示全局變量,例如,是一種區分大小寫的語言。布爾值與字符串相加將布爾值強制轉換為字符串。 基本概念 javascript是一門解釋型的語言,瀏覽器充當解釋器。js執行時,在同一個作用域內是先解釋再執行。解釋的時候會編譯function和var這兩個關鍵詞定義的變量,編譯完成后從...
摘要:并列數據的集合數組用方括號表示。第三種類型是映射,也就是一個名值對,即數據有一個名稱,還有一個與之相對應的值,這又稱作散列或字典,比如首都北京。中有種簡單數據類型也稱為基本數據類型和。數值布爾值對象和字符串值都有方法。 什么是JSON JSON:JavaScript 對象表示法(JavaScript Object Notation)。 JSON的形式是用大括號{}包圍起來的項目列表...
摘要:代碼如下方法方法與類似,用來返回一個字符串在另一個字符串中的位置,如果沒找到那就返回。唯一需要注意的是,方法的參數是一個正則表達式。 站長博客:https://www.pipipi.net/ ES6 includes 方法當包含時返回true,不包含時返回false,代碼實例如下: var string = foo; var substring1 = oo; ...
摘要:字面形式允許你在不需要使用操作符和構造函數顯式創建對象的情況下生成引用值。操作符以一個對象和一個構造函數作為參數鑒別數組有前一小結可以知道鑒別數組類型可以使用。屬性是函數獨有的,表明該對象可以被執行。這種函數被稱為匿名函數。 引子: 1.JavaScript 中的變量類型和類型檢測 1.1原始類型 1.2引用類型 1.3內建類型的實例化 1.4函數的字面形式 1.5正則表達式的字...
摘要:語法語法可以表示三種類型的值簡單值使用與相同的語法,可以在中表示字符串數值布爾值和。對象對象作為一種復雜數據類型,表示的是一組無序的鍵值對兒。如果字符串長度超過了個,結果中將只出現前個字符。 JSON 語法 JSON語法可以表示三種類型的值 簡單值:使用與 JavaScript 相同的語法,可以在 JSON 中表示字符串、數值、布爾值和 null 。但 JSON 不支持 JavaS...
摘要:語句包含聲明語句表達式語句條件語句循環語句和中斷語句我們可以將表達式的求值結果存儲在變量中,在將來提取它們。變量在使用之前應當聲明。程序員可以用語句顯式拋出異常。程序員需要保護自己總是明確使用分號來終結聲明語句。 主要總結: 一個腳本就是一個語句序列,其中每條語句都會生成某一操作。JavaScript語句包含:聲明語句、表達式語句、條件語句、循環語句和中斷語句 我們可以將表達式的求...
閱讀 2203·2021-10-18 13:28
閱讀 2512·2021-10-11 10:59
閱讀 2340·2019-08-29 15:06
閱讀 1132·2019-08-26 13:54
閱讀 808·2019-08-26 13:52
閱讀 3149·2019-08-26 12:02
閱讀 2999·2019-08-26 11:44
閱讀 2512·2019-08-26 10:56