iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0
Modern Web

想轉職的鯊魚從零基礎開始學習JavaScript系列 第 14

想轉職的鯊魚從零基礎開始學習JavaScript Day-14 The String Type字串(二)

  • 分享至 

  • xImage
  •  

method-續

  • String.prototype.endsWith ( searchString [ , endPosition ] )
    用來檢驗字串的結尾,參數有兩個"searchString(搜尋字串)"跟"[ , endPosition ]結尾位置",
    來判定是不是用"searchString"做結尾,並用Boolean值(true/false)回傳結果,
    "searchString"不一定是一個詞彙,也有可能是幾個字母一個符號或是不完整的一句話。
    我在下面創立一個字串,並用各種方式檢驗結尾
    String-endsWith-1
    後面有一個可用可不用的參數endPosition,表示字串的斷尾位置,結尾要從那個斷尾位置開始算,如下圖所示:
    String-endsWith-2

    ※補充說明[,Parameters(參數)表示這個參數的是可用可不用的,沒有也無所謂]
    爬蟲的時候可以用下面的網址去看其他人鐵人賽今天有沒有發文

let today = new Date();
document.querySelector(".qa-list:last-child .qa-list__info-time").innerText.endsWith(today.getDate())
  • String.prototype.includes ( searchString [ , position ] )
    判定字串裡面有無"searchString",並用Boolean值(true/false)回傳結果,
    後面有一個可用可不用的參數position,表示開始搜尋的索引位置,預設是0(也就是從頭開始搜尋)。

  • String.prototype.indexOf ( searchString [ , position ] )
    用來查詢searchString在字串中的索引位置。
    後面有一個可用可不用的參數position,表示開始搜尋的索引位置,預設是0(也就是從頭開始搜尋)。
    像是下面,我建立一個字串,並透過改變搜尋的開始位置,去影響回傳結果。
    String-indexOf

  • String.prototype.lastIndexOf ( searchString [ , position ] )
    跟indexOf類似只是是從後面搜尋過來,後面的參數也是改變從後面開始搜尋的位址。

  • String.prototype.localeCompare ( that [ , reserved1 [ , reserved2 ] ] )
    比較字串跟that(另一個字串)的大小,主要是用來做排序的參考,
    後面兩個參數是對應於Intl.Collator()兩個的參數,用來規範比較的基準。

  • String.prototype.match ( regexp )
    驗證字串的內容是否符合regexp的規範,並將符合規範的字母化作陣列輸出。

    ※補充說明regexp(正規表達式)是被用來匹配字串中字元組合的模式。

  • String.prototype.matchAll ( regexp )
    驗證字串的內容是否符合regexp的規範,並依符合regexp(正規表達式)的內容分組成陣列作輸出,符合regexp的第一組結果、第二組結果、第三組結果等方式。

  • String.prototype.normalize ( [ form ] )
    將輸入的字串(Unicode編碼)依Unicode指定規範化重新編碼。
    [ form ]是Unicode規範化形式,有下面四種“NFC”、“NFD”、“NFKC”或“NFKD”。

  • String.prototype.padEnd ( maxLength [ , fillString ] )
    將字串用指定字母從最後一個字母開始填充到指定長度,
    maxLength是希望字串最後的長度
    [ , fillString ]填充到指定長度所用的文字,預設是一個空個" "

  • String.prototype.padStart ( maxLength [ , fillString ] )
    跟padEnd類似,只不過是從頭開始填充字串長度

    填充長度的很常看到運用在金融業上面,每個銀行的帳號長度不一致,所以都需要填充補齊。

  • String.prototype.repeat ( count )
    字串重複count的次數。

  • String.prototype.replace ( searchValue, replaceValue )
    取代指定字串,將字串第一個的searchValue改成replaceValue。
    searchValue也可用RegExp(正規表達式)表示。

  • String.prototype.replaceAll ( searchValue, replaceValue )
    跟上面類似不過是將字串所有的searchValue都改成replaceValue

  • String.prototype.search ( regexp )
    跟indexOf很類似,只是searchString改成regexp,一樣回傳目標的索引值

  • String.prototype.slice ( start, end )
    分割字串,依索引值去裁切字串。start之前的全捨棄,end之後的全捨棄,留下中間部分。
    end如果沒給值,視同字串的長度-1(最後一個字母的索引值)
    start的位置必須在end之前(end必定大於start),如果在之後或是一樣則會回傳空字串

  • String.prototype.split ( separator, limit )
    依separator為切割點分割字串。
    輸出是一個陣列,將切割的結果依續放進陣列中
    若separator是空字串,整個字串會每個字母被逐一切割
    若separator沒有值,則不會切割,並將字串轉成一個陣列。
    limit表示切割的次數,也就是輸出陣列中的最大量,多的字串會全部捨棄。

  • String.prototype.startsWith ( searchString [ , position ] )
    跟endsWith相似,只是是檢驗字串的開頭。

  • String.prototype.substring ( start, end )
    跟slice相似,不是依索引值而是字母的順序,所以無法用負數去切割。
    start跟end沒有前後限制,end可以比start大。

  • String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )
    將字串依當地語系轉成小寫字母,USA變成usa,我們基本都是用英文語系所以沒太大問題,如果是其他語系的國家會比較需要煩惱,後面的參數表示轉換得語系,不輸入即為當地語系。

  • String.prototype.toLocaleUpperCase ( [ reserved1 [ , reserved2 ] ] )
    跟toLocaleLowerCase相似,只是轉大寫。

  • String.prototype.toLowerCase ( )
    跟toLocaleLowerCase相似,只是不能調整語系。

  • String.prototype.toString ( )
    回傳一個同樣的字串,常用來表示結果與目前輸入的字串相等。

  • String.prototype.toUpperCase ( )
    跟toLocaleUpperCase相似,只是不能調整語系。

  • String.prototype.trim ( )
    刪除字串兩端的空格(空白字符)。

  • String.prototype.trimEnd ( )
    刪除字串結尾的空格(空白字符)

  • String.prototype.trimStart ( )
    刪除字串開頭的空格(空白字符)

  • String.prototype.valueOf ( )
    跟toString相同,
    這種methed只會用在JavaScript內部,不會用在外部的code。

  • String.prototype [ @@iterator ] ( )
    將字串轉換成迭代,並透過.value取出當下的值,.next呼叫下一個值。

const str = 'The quick red fox jumped over the lazy dog\'s back.';

const iterator = str[Symbol.iterator](); //將字串每個字母分割儲存
iterator.next() //進入第一個字母
iterator.value //叫出第一個字母
iterator.next() //進入第二個字母
iterator.value //叫出第二個字母
// ......
//直到所有字母被呼叫完

結語

其實String的method不只這34種,不過很多都已經不推薦使用了,也不被放在EMCA裡面,只是部分瀏覽器還支援,鯊魚沒介紹的部分就不要去使用了,明天我們換其他基本型別的東西來介紹。

鯊語錄

參考資料:

EMCA262
MDN-String


上一篇
想轉職的鯊魚從零基礎開始學習JavaScript Day-13 The String Type字串(一)
下一篇
想轉職的鯊魚從零基礎開始學習JavaScript Day-15 The Number Type數字(一)
系列文
想轉職的鯊魚從零基礎開始學習JavaScript31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言