1. 概述
JavaScript 中會需要對字串進行操作,比如如何判斷字串是否為空,計算字串的長度,更換、尋找、截取字串,或者將字串轉換為其他類型等操作。
正文將介紹 JavaScript 中如何對字串進行操作。
2. 字串長度
2.1 傳回字串長度
1)若想獲取字串長度,可以使用字串物件的 length 屬性,如下傳回 "hello FR" 字元的長度為 8。
var txt= "Hello FR";
alert("字串長度為:"+txt.length); //傳回長度
2)若需要獲取正文元件中字串的長度,可以使用如下程式碼:
var strCtl = this.options.form.getWidgetByName("元件名");
alert("字串長度為:"+strCtl.getText().length); //傳回長度
2.2 字串的判空
字串為空,即字串長度為 0,若要實現判空,txt.length==0 或 txt=='' 只需要滿足一個即可。如下方法:
var txt= "";
if(txt.length==0||txt=='') alert("字串為空"); //為空
else alert("字串不為空"); //不為空
3. 字串的更換
字串 stringObject 的 replace() 方法執行的是尋找並更換的操作。它將在 stringObject 中尋找與 regexp 相匹配的子字串,然後用 replacement 來更換這些子串。如果 regexp 具有全局標籤 g,那麼 replace() 方法將更換所有匹配的子串。否則,它只更換第一個匹配子串。
如下 JavaScript 程式碼,將傳回 Hello FineReport!
var txt="Visit FineReport!";
var txt2=txt.replace(/Visit/, "Hello");
alert(txt2);
4. 字串的尋找
4.1 方法一
search(regexp) 方法用於檢索字串中指定的子字串。
他將傳回 stringObject 中第一個與 regexp 相匹配的子串的起始位置。如果沒有找到,將傳回-1。
search 方法無法尋找全局,只尋找第一個出現的匹配字串。
如下 JavaScript 程式碼,將傳回 9
var txt = "123456789abcde";
var location=txt.search("abc");
alert(location);
4.2 方法二
可以使用字串的 search( ) 方法尋找當前字串是否包含另外一個字串。
如下 JavaScript 程式碼,傳回的 i 是“D”在字串"abcDF"中索引,為第三個,索引從0開始。
var str="abcDF";
var i=str.search("D");
alert(i); //i將=3
5. 字串的截取
可以用 substr(start,length) 方法來提取一個字串中的部分內容。其中 start 是起始,提取長度為 length 的新字串。字串下標從 0 開始,如果 start 為負,則預設從頭開始提取。
如下 JavaScript 程式碼,將傳回 FR。
var txt="Visit FR!";
var txt2=txt.substr(6,2); //從第六個開始取兩個字元
alert(txt2);
6. 字串的連結
可以透過字串的 concat(str1,str2...) 方法將多個字串連結起來
如下 JavaScript 程式碼,將傳回 helloFR
var str1="hello";
var str2="FR";
var str3=str1.concat(str2);
alert(str3);
7. 字串類型轉換
7.1 將字串轉換為數值
可以直接用強制轉換。
如果是轉換為浮點數,則為 parseFloat(str)
如果轉換為整數型,則為 parseInt(str, radix), radix 表示要解析的數位的基數。該值介於 2 ~ 36 之間。
如果省略該參數或其值為 0,則數字將以 10 為基礎來解析。
如果以 “0x” 或 “0X” 開頭,將以 16 為基數。
如果該參數小於 2 或者大於 36,則 parseInt() 將傳回 NaN。
如下 JavaScript 程式碼,將傳回 3.14 和 15
var str1=parseFloat("314e-2"); //傳回3.14
alert(str1);
var str2=parseInt("17",8);//傳回 15 (8+7)
alert(str2);
7.2 將字串轉換為陣欄
可以使用字串的 split(separate) 方法將字串分割為陣欄,separate 為篩選字串。
如下 JavaScript 程式碼,str2 將儲存為一個字串陣欄,值分別為"I","love","FR"
var str1="I love FR";
var str2=str1.split(" ");
alert(str2);
7.3 將字串字母統一轉換成大寫
可以使用字串的 toUpperCase( ) 方法將字串中的所有字母轉換為大寫,toUpperCase 方法對非字母字元不會產生影響。
var data="FineReport 10.0";
var newdata=data.toUpperCase(); //newdata 將轉換為 FINEREPORT 10.0
alert(newdata);
7.4 將字串字母統一轉換為小寫
可以使用字串的 toLowerCase( ) 方法將字串中的所有字母轉換為小寫。
var data="FineReport 10.0";
var newdata=data.toLowerCase(); //newdata 將轉換為 finereport 10.0
alert(newdata);