網頁設計程式語法JavaScriptJavaScript String 字串函數處理

JavaScript String 字串處理函數

JavaScript
String
METHODS

length 字串長度

傳回字串長度「計算幾個字」空字串的 length0JavaScript 使用 UTF-16 編碼用來表示大部分常見的字元,使用兩個代碼單元表示不常用的字元。因此 length 返回值可能與字串中實際的字元數量不相同。獨角碼一個字可能有兩個或四個位元組。(但尚未找到)

stringObject.length;
var myStr = "myString";
stringObject.length; /* 8 */
var myStr = "基本字串";
stringObject.length; /* 4 */
var myStr = "《基本(符號)字串》";
stringObject.length; /* 10 */
var myStr = "基本的な文字列";
stringObject.length; /* 7 */
0

substr() 提取字串中的幾個字

取字串中的幾個字 JavaScript 的起始位置是 0。如果省略了 length 那麼返回從 stringObject 的開始位置到結尾的字串。-1 指字串中最後一個字元、-2 指倒數第二個字元,以此類推。

stringObject.substr(start, length)
var myStr = "myString";
myStr.substr(2,3); /* Str */
myStr.substr(-3,3); /* ing */
myStr.substr(2); /* String */

substring() 提取字串中兩個指定索引號之間的字元

取字串中的幾個字,起始位置是 0 從指定的位置 start 到指定「位置 index」的字串。與 slice() 和 substr() 方法不同的是 substring() 不接受負的參數小於 0 則為 0。建議使用 slice() 靈活些

stringObject.substring(start, index)
var myStr = "myString";
myStr.substring(2,5); /* Str */
myStr.substring(2,25); /* String (超出 length 只取到字串的結尾) */

JavaScriptsubstrsubstring 的分別:
String.substr(start, length) :從指定的位置 start 截取 到 指定「長度」length 的字串。
String.substring(start, index) :從指定的位置 start 到 指定「位置」index 的字串。

charAt() 取字串中的一個字

取字串中的一個字 index 索引指標從 0 算起、如果參數 index 不在 0 與字串長度之間,將返回一個空字串。

stringObject.charAt(index)
var myStr = "myString";
myStr.charAt(0); /* m */
myStr.charAt(2); /* S */
myStr.charAt(10); /* 返回一個空字串 */

charCodeAt() 取字串中一個字的編碼

傳回字串中一個字的 ISO-Latin-1 碼 ( index 索引指標從 0 算起 ) 為十進位的 ASCII 編碼

stringObject.charCodeAt(index)
var myStr = "ABC";
myStr.charCodeAt(0); /* 65 (等於 VBScript Asc("A")) */
myStr.charCodeAt(1); /* 66 */
var myStr = "字串";
myStr.charCodeAt(0); /* 23383 */

有時候使用 charCodeAt() 來判斷中文字及字串的分割點。

concat() 混合兩個字串成一個新字串

將把它的所有參數轉換成字串,然後按順序連接到字串 stringObject 的「尾部」,並返回連接後的字串。請注意 stringObject 本身並沒有被更改。stringObject.concat()Array.concat() 很相似。

stringObject.concat(stringX,stringX,...,stringX)
var myStr = "my";
myStr.concat("String"); /* myString */
var myStr = "my";
myStr.concat("Str","ing"); /* myString */

indexOf() 字串尋找

字串尋找「由左至右尋找」將從頭到尾地檢索字串 stringObject 是否包含有 searchvalue。開始檢索的位置在字串的 fromIndex 處或字串的開頭(沒有指定 fromIndex 時)。 如果找到一個 searchvalue 則返回 searchvalue 的第一次出現的位置。stringObject 中的字元位置是從 0 開始的。

stringObject.indexOf(searchvalue,fromIndex)
var myStr = "myString String";
myStr.indexOf("Str",1); /* 2 */
myStr.indexOf("Str",5); /* 9 */
myStr.indexOf("Str",10); /* -1 沒有找到 */

lastIndexOf() 字串反向尋找

字串反向尋找「由右至左尋找」(反向)將從尾到頭地檢索字串 stringObject 看它是否含有子串 searchvalue。開始檢索的位置(左)在字串的 fromIndex 處或沒有指定則為字串的結尾。

stringObject.lastIndexOf(searchvalue,fromIndex)
var myStr = "myString String";
myStr.lastIndexOf("Str",5); /* 2 */
myStr.lastIndexOf("Str"); /* 9 */
myStr.lastIndexOf("Str",1); /* -1 沒有找到 */

replace() 字串取代

字串取代符合 regexp 部份被 replaceString 部份取代,可加 /g 代表總體尋找,可加 /i 代表不分大小寫。

stringObject.replace(regexp, replaceString)
var myStr = "myString";
myStr.replace(/Str/,"xxx"); /* myxxxing */
myStr.replace(/str/,"xxx"); /* myString (大小寫不同) */
var myStr = "As As as As";
myStr.replace(/As/,"Bs"); /* Bs As as As (預設下只有一次) */
myStr.replace(/As/ig,"Bs"); /* Bs Bs Bs Bs (i 忽略大小寫, g 全部取代) */

match() 傳回尋找到的字串

傳回尋「找到的字串」regexp 為待尋找的字串,可加 /g 代表總體尋找,可加 /i 代表不分大小寫。

stringObject.match(regexp)
var myStr = "myString";
myStr.match("Str"); /* Str */
myStr.match(/Str/); /* Str */
myStr.match(/str/); /* null */
myStr.match(/str/ig); /* Str,Str (總體尋找) */

search() 傳回尋找到的字串位置

傳回尋找到的「字串位置」regexp 為待尋找的字串,可加 /g 代表總體尋找,可加 /i 代表不分大小寫。

stringObject.search(regexp)
var myStr = "myString String";
myStr.search("Str"); /* 2 */
myStr.search(/Str/); /* 2 */
myStr.search(/str/); /* -1 */
myStr.search(/str/i); /* 2 (忽略大小寫) */

slice() 取得部份字串

slice() 比 substring() 靈活度好一些,可以使用「負數」為參數。另與 substr() 不同是因為它用兩個字元的位置來指定子串,而 substr() 則用字元位置和長度來指定子串。

stringObject.slice(start, end)

start 要取得部份字串的起始。如果是負數,則該參數規定的是從字串的尾部開始算起的位置。
也就是說 -1 指字串的最後一個字元,-2 指倒數第二個字元,以此類推。

end 接著要取得部份字串的結尾。若未指定此參數,則要提取的子串包括 start 到原字串結尾的字串。
如果該參數是負數,那麼它規定的是從字串的尾部開始算起的位置。

var myStr = "myString ABCDEF";
myStr.slice(5); /* ing ABCDEF */
myStr.slice(2,7); /* Strin */
myStr.slice(-6,-3); /* ABC */
myStr.slice(-3); /* DEF */

split() 分隔成字串陣列

用於把字串分隔成「字串陣列」(separator 為分隔字串 length 為分隔數目)。該陣列是通過在 separator 指定的邊界處將字串 stringObject 分割成子串創建的。返回的陣列中的字串不包括 separator 自身。如果分隔字串 separator 為空字串 ("") 那麼 stringObject 中的每個字元之間都會被分割。

stringObject.split(separator, length);
var myStr = "What plan for Weekend?"
myStr.split(""); /* W,h,a,t, ,p,l,a,n, ,f,o,r, ,W,e,e,k,e,n,d,? */
myStr.split("",8); /* W,h,a,t, ,p,l,a (分隔數目 8) */
myStr.split(" "); /* What,plan,for,Weekend? */
myStr.split(/\s+/); /* What,plan,for,Weekend? */
myStr.split(" ",3); /* What,plan,for (分隔數目 3) */
myStr.split(/\s+/,3); /* What,plan,for (分隔數目 3) */

/\s+/ 相等於多次空白字元。

var myStr = "2:3:4:5"
myStr.split(":"); /* 2,3,4,5 */
var myStr = "A|B|C|D|E|FG"
myStr.split("|"); /* A,B,C,D,E,FG */

Modification in

網站結構設計最佳化

評估網站狀態,網頁架構、內容、製作方式、提供網站註冊的服務。

網站登錄

以國內為例若是網站在 Google, Yahoo, Bing... 登錄,則搜尋引擎的資料庫內就有您的網站資料。
訪客才能依其關鍵字找到您。(提供免費網站註冊服務)

網站排名

依據上網者的習性,通常網站排名若未在前些頁內,上網者可能就無耐性繼續往下搜尋 !
所以,您的網站排名若是於多頁以後,訪客會造訪您的網站的機率相對的減少了。

網頁設計內容的考量

如果網站的操作動線欠缺考量,導致訪客無法適時看到所需要的資訊。如果網頁設計不夠精緻,影響到訪客對商品的信賴度,降低訪客的購買信心。商品說明不夠詳細,訪客只能看到商品名稱以及型號,無法得知網站商品的詳細內容。

網頁未做 SEO 優化

這將導致搜尋引擎無法順利解讀網頁內容,相對的也就會影響到網站排名,網頁內容資訊不足、商品的詳細內容採用 FLASH 方式製作,這將導致搜尋引擎無法解讀網頁內容。另外主機連線不穩定、部份網站空間出租業為降低成本,會在同一部主機當中分配過多的網站,導致網路頻寬不足,影響連線速度。

部落格版主2018/12/18星期二