JavaScript字串常用操作函數之學習筆記

來源:互聯網
上載者:User

字串簡介

使用英文單引號或雙引號括起來,如:’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] + '&lt;br /&gt;';
 }
 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&lt;diff; i++){
  filter += '0';
 }
 return filter + num;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.