1. 程式人生 > >JavaScript學習-字串操作

JavaScript學習-字串操作

一、獲取

1.1 字串長度

語法:字串.length 注意:字串中,一個空格也算一個字元。

var x = "stri ng";
	document.write(x.length);
	// 結果為:7

1.2 字串中的數字

1.2.1 正則

語法:var num= s.replace(/[^0-9]/ig,"");

var x = "456str3i2nig";
// 正則獲取數字字串
var num= x.replace(/[^0-9]/ig,"");
	document.write(2 + num);
	// 結果為:245632
// 把數字字串轉化為數字
	document.write(2 + parseInt
(num)); // 結果為:45634

1.2.2 parseInt()

語法:parseInt(“字串”)

// 字串以數字開頭,直接使用parseInt才有意義
var x = "456str3i2nig";
	document.write(parseInt(x));
	// 結果為:456
var y = "w456str3i2nig";
	document.write(parseInt(y));
	// 結果為:NaN

1.3 索引值

1.3.1 從開始位置查詢

語法:字串.indexOf(“待查字串”) 語法:字串.lastIndexOf(“待查字串”) 注意:若未找到,則返回值為-1。

// 字串以數字開頭,直接使用parseInt才有意義
var x = "456strni2nig"; // 首次出現的位置 document.write(x.indexOf("i")); // 結果為:7 // 最後一次出現的位置 document.write(x.lastIndexOf("i")); // 結果為:10 document.write(x.lastIndexOf("ni")); // 結果為:9

1.3.1 從指定位置查詢

語法:物件名.indexOf(“待查字串”, 指定位置索引值) 注意:若未找到,則返回值為-1。

// 字串以數字開頭,直接使用parseInt才有意義
var x = "456strni2nig";
// 首次出現的位置
	document.
write(x.indexOf("i", 8)); // 結果為:10

1.4 字元

1.4.1 單字元

語法一:物件名.charAt(index) 注意:索引值必須在[0,string.length-1]中,否則會返回空字串。

var x = "string";
	document.write(x.charAt(2));
	// 結果為:r

語法二:物件名[index]

var x = "string";
	document.write(x[2]);
	// 結果為:r

特殊字元

程式碼 輸出 程式碼 輸出
單引號 " 雙引號
\ 反斜槓 \n 換行
\r 回車 \t tab (製表符)
\b 退格符 \f 換頁符

1.4.2 多字元

情況一:開始索引值知,獲取長度知 語法:物件名.substr(startIndexValue, getLength)

var x = "string";
// =====startIndexValue >= 0時,正序取字元。======
	document.write(x.substr(2, 3));
	// 結果為:rin
// ======startIndexValue < 0時,倒序取字元。=====
	document.write(x.substr(-1, 2));
	// 結果為:g
	document.write(x.substr(-2, 2));
	// 結果為:ng
	document.write(x.substr(-3, 2));
	// 結果為:in
	document.write(x.substr(-3, 8));
	// 結果為:ing

情況二:開始索引值知(非負值) 語法:物件名.substring(startIndexValue) 注意:遵循——[開始索引值,string.length)——規則

var x = "string";
	document.write(x.substring(2));
	// 結果為:ring

情況三:開始索引值知(非負值)、結束索引值知(非負值) 語法:物件名.substring(startIndexValue, stopIndexValue) 注意:遵循——[開始索引值,結束索引值)——規則

var x = "string";
	document.write(x.substring(2,5));
	// 結果為:rin

二、增加

2.1 字元知

2.1.1 前面

var a = "sitrinig";
// =================只在增加指定位置一次,在第二個i前面增加A==========
var b = addChar("i", "A", 2, a);
	document.write(b);
	// 結果為:sitrAinig
function addChar(oldChar, newChar, num, oldString){
	var k = 0;
	var newString = "";
	for(var i = 0; i < oldString.length; i++){
		if(oldString.charAt(i) == oldChar){
			k++;
			if(num == k){
				newString = newString + newChar + oldString.charAt(i);
			}else{
				newString = newString + oldString.charAt(i);
			}
		}else{
			newString = newString + oldString.charAt(i);
		}
	}
	return newString;
}
// ============================全部i前面增加A========================
var a = "sitrinig";
// 刪除i的時候,同時轉化為陣列。
var d = a.split("i");
// 轉化為字串的時候,同時加入Ai。
var e = d.join("Ai");
	document.write(e);
	// 結果為:sAitrAinAig

2.1.2 後面

var a = "sitrinig";
// ==============只在增加指定位置一次,在第二個i後面增加A=============
var b = addChar("i", "A", 2, a);
	document.write(b);
	// 結果為:sitriAnig
function addChar(oldChar, newChar, num, oldString){
	var k = 0;
	var newString = "";
	for(var i = 0; i < oldString.length; i++){
		if(oldString.charAt(i) == oldChar){
			k++;
			if(num == k){
				newString = newString + oldString.charAt(i) + newChar;
			}else{
				newString = newString + oldString.charAt(i);
			}
		}else{
			newString = newString + oldString.charAt(i);
		}
	}
	return newString;
}
// ========================全部i後面增加A========================
var a = "sitrinig";
// 刪除i的時候,同時轉化為陣列。
var d = a.split("i");
// 轉化為字串的時候,同時加入iA。
var e = d.join("iA");
	document.write(e);
	// 結果為:siAtriAniAg

2.2 位置知

2.2.1 前面

var a = "sitring";
var b = addChar(a,"A", 2);
	document.write(b);
	//結果為:siAtring
function addChar(oldstring, newChar, indexValue){
	var newstring = "";
	for(var i = 0; i < oldstring.length; i++){
		if((indexValue - 1) == i){
			newstring = newstring + oldstring.charAt(i) + newChar;
		}else{
			newstring = newstring + oldstring.charAt(i);
		}
	}
	return newstring;
}

2.2.2 後面

var a = "sitring";
var b = addChar(a,"A", 2);
	document.write(b);
	//結果為:sitAring
function addChar(oldstring, newChar, indexValue){
	var newstring = "";
	for(var i = 0; i < oldstring.length; i++){
		if(indexValue == i){
			newstring = newstring + oldstring.charAt(i) + newChar;
		}else{
			newstring = newstring + oldstring.charAt(i);
		}
	}
	return newstring;
}

三、替換

3.1 字元知

3.1.1 僅僅替換首次出現的字元——replace。

語法:字串.replace(“待替換字元”, “新字元”)

var a = "sitring";
	document.write(a.replace("i", "t"));
	// 結果為:sttring

3.1.2 替換全部指定字元。

var a = "sintring";
// ==========================單字元替換====================
var b = insteadChar("i", "t", a);
function insteadChar(oldChar, newChar, oldString){
	var newString = "";
	for(var i = 0; i < oldString.length; i++){
		if(oldString.charAt(i) == oldChar){
			newString = newString + newChar;
		}else{
			newString = newString + oldString.charAt(i);
		}
	}
	return newString;
}
// =============多字元替換==========優先使用==============
var a = "sintring";
// 刪除in的時候,同時轉化為陣列。
var d = a.split("in");
// 轉化為字串的時候,同時加入12。
var e = d.join("12");
	document.write(e);
	// 結果為:s12tr12g

四、刪除

4.1 字元知

4.1.1 僅僅刪除首次出現的字元——replace。

語法:字串.replace(“待刪除字元”, “”)

var a = "sitring";
	document.write(a.replace("i", ""));
	// 結果為:string

4.1.2 刪除全部指定字元。

第一步:字串轉化為陣列 語法:陣列 = 字串.split(“待刪除字元”); 第二步:陣列轉化為新字串 語法:新字串 = 陣列.join("");

var a = "sitring";
// 根據特殊符號分割-split("i"),轉化為陣列。
var b = a.split("i");	
// 使用join("")把陣列轉化為字串。
var c = b.join("");
	document.write(c);
	// 結果為:strng

4.2 位置知

var a = "sitring";
// 待刪除索引值為2時
var b = delChar(a, 2);
	document.write(b);
	//結果為:siring
function delChar(oldstring, indexValue){
	var newstring = "";
	for(var i = 0; i < oldstring.length; i++){
		if(indexValue != i){
			newstring = newstring + oldstring.charAt(i);
		}
	}
	return newstring;
}

五、轉化

5.1 大寫<==>小寫

5.1.1 大寫==>小寫

語法:字串.toLowerCase()

var x = "STRING";
	document.write(x.toLowerCase());
	// 結果為:string

5.1.2 大寫==>小寫

語法:字串.toUpperCase()

var x = "string";
	document.write(x.toUpperCase());
	// 結果為:STRING

5.2 字串<==>陣列互轉

5.2.1 字串==>陣列

情況一:每一個字元都作為陣列新元素——完全分割 語法:var array1 = 字串.split("")

var x = "string";
	console.log(x.split(""));
	// 結果為[s,t,r,i,n,g]

情況二:特殊符號分割字串作為陣列新元素——特殊符號完全分割 語法:var array1 = 字串.split(“特殊符號”)

var x = "string1,string1,string1,string1,string1";
	console.log(x.split(","));
	// 結果為[string1,string1,string1,string1,string1]
// 把後臺傳來的資料tex="[string1,string1,string1,string1,string1]"轉化為陣列。
var array = tex.replace(/\"/g, "");
	// 結果array=[string1,string1,string1,string1,string1]

5.2.2 字串<==陣列

方法一:join("") 語法:陣列.join("")

var a = ["string2","string3","string4","string5"];
var b=a.join(""); 
	document.write(b);
	//結果為:string2string3string4string5

方法二:toString() 語法:陣列.toString()

var a = ["string2","string3","string4","string5"];
var b=a.toString(); 
	document.write(b);
  // 結果為:string2,string3,string4,string5
 var m1 = b.split(",");
 	document.write(m1);
 var m2=m1.join(""); 
	document.write(m2);
  // 結果為:string2string3string4string5

5.3 字元<==>Unicode 值

5.3.1 字元==>Unicode 值

語法:字串.charCodeAt(索引值)

var x = "satring";
	document.write(x.charCodeAt(1));
	// 結果為:97

5.3.2 字元<==Unicode 值

語法:String.fromCharCode(num1,num2,num3)

document.write(String.fromCharCode(97,98,99));
// 結果為:abc

六、分割(split)

6.1 完全分割。

語法:字串.split("")·

var mystr="www.baidu.com";
	document.write(mystr.split("")+"<br />");
// 結果:w|w|w|.|b|a|i|d|u|.|c|o|m

6.2 完全分割(限次)。

語法:字串.split("", 分割次數)

var mystr="www.baidu.com";
	document.write(mystr.split("",5)+"<br />");
// 結果:w|w|w|.|b

6.3 根據“符號”完全分割。

語法:字串.split(“符號”)

var mystr="www.baidu.com";
	document.write(mystr.split(".")+"<br />");
/** 結果:www
 *       baidu
 *       com
 */ 

6.4 根據“符號”完全分割(限次)。

語法:字串.split(“符號”, 分割次數)

var mystr="www.baidu.com";
	document.write(mystr.split(".",2)+"<br />");
/** 結果:www
 *       baidu
 */

七、拼接

7.1 concat()

語法:前面字串.concat(後接字串)

var x = "string1";
var y = "string2";
var z = "string3";
	document.write(x.concat(y,z));
	//結果為:string1string2string3

7.2 +

語法:前面字串+後接字串+後接字串

var x = "string1";
var y = "string2";
var z = "string3";
	document.write(x+y+z));
	//結果為:string1string2string3