字串簡介
使用英文單引號或雙引號括起來,如:’Hello’,”World”,但是不能首尾的單引號和雙引號必須一致,交錯使用,如果要列印單引號或者雙引號,可以使用逸出字元\’(單引號),\”(雙引號)
| 代碼如下 |
複製代碼 |
var str_1 = 'Hello World!'; //Hello World! var str_2 = "Hello World!"; //Hello World! var str_3 = '他說:"這樣可以的。"'; //他說:"這樣可以的。" var str_4 = "他說:\"這樣可以的。\""; //他說:"這樣可以的。" var str_5 = 'Hello World!"; //錯誤的使用 var str_6 = "Hello World!'; //錯誤的使用
|
連接字串和另一個種資料類型
使用+加號連結字串
| 代碼如下 |
複製代碼 |
var uname = 'Kimy'; var uage = '4'; alert(uname + '今年' + uage + '歲了'); //彈窗:Kimy今年4歲了 |
使用concat()方法連接字串
| 代碼如下 |
複製代碼 |
var str = 'kimy'; var age = '4'; var newstr = str. concat('今年',age,'歲了'); //kimy今年4歲了 alert(newstr);
|
條件比較字串
| 代碼如下 |
複製代碼 |
var strName = prompt('請輸入你的姓名:',''); if(strName.toLowerCase() == 'kimy'){ //==(雙等號)比較變數strName的值是否是'Kimy' alert('原來你就是Kimy'); }else{ alert('你不是Kimy,你是'+strName); } strName.toLowerCase()把字串轉為小寫,然後再進行比較
|
相等 == 運算數相同為真;否則為假
嚴格相等 === 運算數相同且具有相同的資料類型為真;否則為假
不相等 != 運算數不同為真;否則為假
嚴格不相等 !== 運算數不同或者資料類型不同為真;否則為假
大於 > 左邊的運算數大於
大於或等於 >=
小於 <
小於或等於 <=
在字串中尋找子字串
indexOf( ) 從字串的起始位置尋找子字串,可以找到子字串,則返回子字串的首字母所在的位置,否則返回-1,返回0表示在開始位置就匹配了。
| 代碼如下 |
複製代碼 |
var str = '111cn.net /key=value'; var pos = str.indexOf('key'); if(pos != -1){ alert('找到了,索引號:'+pos); //下標索引從0開始 } lastIndexOf( ) 從字串的尾部從右向左尋找子字串,可以找到子字串,則返回子字串的首字母所在的位置,否則返回-1 var pox = str.lastIndexOf('key'); if(pox != -1){ alert('找到了,索引號:'+pox); //匹配斜杠後面的key } |
從一個字串提取子字串
| 代碼如下 |
複製代碼 |
var dstStr = 'Hello Mekkey!'; var start = dstStr.indexOf(' ')+1;//擷取第一個空格的位置,並加1 var end = dstStr.length;//擷取字串的長度 var myStr = dstStr.substring(start,end);//按照起始位置和結束為止返回子字串 alert(myStr);//Mekkey! 檢查一個存在的、非空的字串 if((typeof unknowkey != "undefined") && (typeof unknowkey.valueOf() == "string") && (unkonwkey.length > 0)){ alert('unknowkey是一個非空的、存在的字串'); } typeof unknowkey != “undefined” //判斷變數unknowkey是否存在 typeof unknowkey.valueOf() == “string” //如果unkonwkey是一個String對象,則返回一個字串直接量 unkonwkey.length > 0 //判斷字串的長度是否為空白 var str = 'helelo'; //字串直接量 var oStr = new String('world');//String對象 alert(typeof str.valueOf()); //輸出:String alert(typeof oStr.valueOf()); //輸出:String alert(typeof str); //輸出:String alert(typeof oStr.valueOf()); //輸出:Object |
將一個關鍵字字串分解為單獨的關鍵字
使用split()方法按照指定的字元進行分割,返回一個數組,split()函數中的參數可以是字串也可以是Regex
| 代碼如下 |
複製代碼 |
var str = "http://www.111cn.net ?key=value"; var arr = str.split('?');//按照字串中的問號對字串進行分割 alert(arr[1]);//彈窗顯示問號後面的內容 |
處理textarea的單個行
| 代碼如下 |
複製代碼 |
function showResult(){ var text = document.getElementById('inputbox'); var lines = text.value.split('\n'); var resultString = '<p>'; for(var i=0; i<lines.length; i++){ resultString += lines[i] + '<br />'; } resultString += '</p>'; var result = document.getElementById('result'); result.innerHTML = resultString; }
|
在ECMAScript 5發布之前,必須使用Regex或者String的replace()方法去除掉一個字串首尾的空格,現在只需要使用trim()方法就可以實現。
str.trim();
對於不支援trim()的瀏覽器可以使用String prototype添加定製的trim方法
| 代碼如下 |
複製代碼 |
if(typeof String.trim == 'undefined'){ String.prototype.trim = function(){ return this.replace(/(^\s*)|(\s*$)/g,''); } } |
左補充或右補充一個字串
| 代碼如下 |
複製代碼 |
function setSameLength(num,preLength){ var len = num.length; var diff = preLength - len; var filter=''; for(var i=0; i<diff; i++){ filter += '0'; } return filter + num; } |