符串一般用于編程、概念說明、函數解釋等,今天小編將為大家帶來大數據編程入門:JavaScript字符串,介紹在JavaScript中字符串的定義及應用。
JavaScript字符串定義
在JavaScript中,字符串用于存儲和處理文本。
字符串可以存儲一系列字符,例如“John Doe”。
字符串可以是插入引號中的任何字符,可以使用單引號或雙引號:
var phone="Redmi";
var phone='Redmi';
想要訪問字符串中的每個字符的時候,可以使用索引位置:
var character=phone[2];
字符串的索引從0開始,這意味著第一個字符的索引值為[0],第二個字符的索引值為[1],依此類推。
可以在字符串中使用引號。字符串中的引號不應與字符串中的引號相同:
var answer="It's alright";
var answer="He is called 'Johnny'";
var answer='He is called "Johnny"';
還可以通過向字符串添加轉義字符來使用引號:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Miuku</title>
</head>
<body>
<p id="demo"></p>
<script>
var x='It\'s so beautiful!';
var y="Her face is white like the \"snow\"";
document.getElementById("demo").innerHTML=x + "<br>" + y;
</script>
</body>
</html>
運行結果:
字符串長度
如果想要計算字符串的長度,可以使用內置屬性length,實例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Miuku</title>
</head>
<body>
<script>
var txt="Hello World!";
document.write("<p>" + txt.length + "</p>");
var txt="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
document.write("<p>" + txt.length + "</p>");
</script>
</body>
</html>
運行結果:
特殊字符
在JavaScript中,字符串用單引號或雙引號編寫。
因此,無法解析以下JavaScript實例:
"We are the so-called "Vikings" from the north."
在上面可以看到字符串 "We are the so-called " 被截斷。
如何解決上述問題?可以使用反斜杠(\)來轉義“Vikings”字符串中的雙引號,如下所示:
"We are the so-called \"Vikings\" from the north."
反斜杠是轉義字符。轉義字符將特殊字符轉換為字符串:
轉義字符(\)可用于轉義撇號、換行符、引號和其他特殊字符。
下表列出了可以使用字符串中的轉義字符轉義的特殊字符:
代碼 | 輸出 |
\’ | 單引號 |
\’’ | 雙引號 |
\ | 反斜杠 |
\n | 換行 |
\r | 回車 |
\t | tab(制表符) |
\b | 退格符 |
\f | 換頁符 |
字符串可以是對象
通常,JavaScript字符串是原始值,可以使用以下字符創建:var firstName=“John”
但是,我們也可以使用new關鍵字將字符串定義為對象:var firstName=new String(“John”)
實例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Miuku</title>
</head>
<body>
<p id="demo"></p>
<script>
var x="John"; // x是一個字符串
var y=new String("John"); // y是一個對象
document.getElementById("demo").innerHTML=typeof x + " " + typeof y;
</script>
</body>
</html>
運行結果:
不要創建String(字符串)對象,它會減慢執行速度,并可能產生其他副作用:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Miuku</title>
</head>
<body>
<p id="demo"></p>
<script>
var x="John"; // x 是字符串
var y=new String("John"); // y 是一個對象
document.getElementById("demo").innerHTML=x===y;
</script>
<p>===為絕對相等,即數據類型與值都必須相等。</p>
</body>
</html>
運行結果:
字符串屬性和方法
原始值字符串,例如“John”,沒有屬性和方法(因為它們不是對象)。
原始值可以使用JavaScript屬性和方法,因為JavaScript可以在執行方法和屬性時將原始值視為對象。
字符串屬性
屬性 | 描述 |
constructor | 返回創建字符串屬性的函數 |
length | 返回字符串的長度 |
prototype | 允許您向對象添加屬性和方法 |
字符串方法
方法 | 描述 |
charAt() | 返回指定索引位置的字符 |
charCodeAt() | 返回指定索引位置字符的 Unicode 值 |
concat() | 連接兩個或多個字符串,返回連接后的字符串 |
fromCharCode() | 將 Unicode 轉換為字符串 |
indexOf() | 返回字符串中檢索指定字符第一次出現的位置 |
lastIndexOf() | 返回字符串中檢索指定字符最后一次出現的位置 |
localeCompare() | 用本地特定的順序來比較兩個字符串 |
match() | 找到一個或多個正則表達式的匹配 |
replace() | 替換與正則表達式匹配的子串 |
search() | 檢索與正則表達式相匹配的值 |
slice() | 提取字符串的片斷,并在新的字符串中返回被提取的部分 |
split() | 把字符串分割為子字符串數組 |
substr() | 從起始索引號提取字符串中指定數目的字符 |
substring() | 提取字符串中兩個指定的索引號之間的字符 |
toLocaleLowerCase() | 根據主機的語言環境把字符串轉換為小寫,只有幾種語言(如土耳其語)具有地方特有的大小寫映射 |
toLocaleUpperCase() | 根據主機的語言環境把字符串轉換為大寫,只有幾種語言(如土耳其語)具有地方特有的大小寫映射 |
toLowerCase() | 把字符串轉換為小寫 |
toString() | 返回字符串對象值 |
toUpperCase() | 把字符串轉換為大寫 |
trim() | 移除字符串首尾空白 |
valueOf() | 返回某個字符串對象的原始值 |
以上就是關于大數據編程入門:JavaScript字符串的全部內容了,希望這篇文章可以幫助到大家~
在之前的一篇文章《如何打造屬于自己的Javascript武器庫,來封裝這些經典的方法吧》中,有封裝過一些簡單的方法。
今天這篇文章我們繼續看看關于字符串處理的常用方法,并將其封裝,完善自己的Javascript武器庫。
文中的代碼我已經放到Github上了,有需要的同學可以自取。
https://github.com/zhouxiongking/article-pages/blob/master/articles/jsCapsulation/capsulation2.js
Javascript
該方法的主要目的是通過傳遞不同的參數,選擇去除哪里的空格。
all - 代表所有空格
preBehind - 前后空格
previous - 前面空格
behind - 后面空格
主要思想是:通過正則表達式\s匹配空白字符,然后用''去替換空白字符。
得到的代碼如下所示。
去除空格方法
該方法的主要目的是:將字符串的首字母或者全部字母,進行大小寫轉換。根據傳入的參數進行處理。
FirstUpper - 首字母大寫
FirstLower - 首字母小寫
AllToggle - 全部大小寫相互轉換
AllUpper - 全部大寫
AllLower - 全部小寫
主要思想是:根據傳入的參數,配合使用字符串自身的toUpperCase和toLowerCase方法。
得到的代碼如下所示。
字母大小寫轉換
其中的ToggleCase方法用于大小寫相互轉換,其如下所示。
大小寫相互轉換
該方法主要用于檢測輸入的字符串是否是我們想要的類型,例如email代表郵箱,phone代表手機號,number代表數字,chinese代表中文。
主要思想是:獲得想要獲取類型的正則表達式,然后返回匹配的結果。
得到的代碼如下所示。
檢測字符串類型
上述的檢測方案完全可以按照需求進行擴充,直接通過case,就可以自行添加。
該方法主要用于模仿檢測設置密碼的強度,檢測規則如下:
如果密碼長度小于6,則強度為0。
如果密碼包含數字,則強度加1。
如果密碼包含小寫字母,則強度加1。
如果密碼包含大寫字母,則強度加1。
如果包含特殊字符,則強度加1。
上述規則會累加統計,最高強度為4。
得到的代碼如下所示。
檢測密碼強度
該方法主要用于隨機生成指定長度的字符串,例如隨機驗證碼我們完全可以通過這個方法去實現。
主要思想是:先通過Math.random()方法生成隨機數,然后調用toString(36)方法轉化為字符串,再截取掉前面的0和小數點,循環計算直到達到指定長度。
該方法的核心在于toString()方法的使用,Number類型的toString方法已經重寫,傳入的參數表示轉化的進制數,傳入的范圍是2-36,最小的2表示0-1,最大的36數字0-9和小寫字母a-z,如上面的toString(36),表示要用36進制數表示。
根據以上分析,得到的代碼如下所示。
隨機生成指定長度字符串
該方法通過字符串的split方法實現特別簡單。通過split方法按照目標字符串分割成數組,目標字符串出現的次數就是數組的長度減去1。
根據以上分析,得到的代碼如下所示。
統計指定字符串出現次數
該方法主要用于將字符串通過傳入的參數格式化處理,接收的參數如下所示。
size - 表示分割的位數,默認為3。
delimiter - 處理后字符串的連接符,默認為','
該方法的思想是通過正則表達式,動態獲取每次需要捕獲的位數,然后將其捕獲的位置前后替換為連接符。
得到的代碼如下。
格式化字符串處理
今天這篇文章主要補充了Javascript中與字符串有關的方法的封裝,其他需要封裝的方法還有很多,大家也可以自行總結。
1.想要獲取字符串中某一字符
stringObject.charAt(index) 返回stringObject中得index位置的字符
stringObject.charCodeAt(index) 返回stringObject中得index位置的字符的字符編碼。
2.想要獲取字符串中某一字符的位置(與數組中用法一樣)
stringObject.indexof(“ 你想要的字符串”); 返回字符串的位置 沒有就返回-1
stringObject.lastindexof(“ 你想要的字符串”);從后往前搜索 返回字符串的位置
1 <script type="text/javascript"> 2 var str="hello world"; 3 //1.想要獲取字符串中某一字符: 4 console.log(str.charAt(7));//顯示索引7在的位置字符; 5 console.log(str.charCodeAt(4));//顯示索引在4位子的字符在ASCII碼表上的編碼號 6 //2.想要獲取字符串中某一字符的位置: 7 var email="marry.mail@soho.com"; 8 console.log(email.indexOf("o"));//查找字符串中o第一次出現的位置的索引值; 9 console.log(email.lastIndexOf("."));//查找字符串中"."最后出現一次所在的位置的索引值; 10 </script>
1想要截取字符串
1.slice(start,end)截取
1.最后一個參數省略時,截取到末尾。
2,參數為負數時,其值為字符串長度+該負數。
3,不包含最后參數本身(end)。
1 <script type="text/javascript"> 2 var str="hello world"; 3 //截取orl 4 console.log(str.slice(7,10)); 5 console.log(str.slice(1)); 6 console.log(str.slice(-7,-2));//str.slice(4,9) 7 </script>
2 substring()截取
說明:語法及功能同slice()完全一樣。
區別在于:
1.當參數為負數時,自動將參數轉換為0.
2.substring()會將較小的數作為開始位置,將較大的數作為結束位置。
1 <script type="text/javascript"> 2 var str="hello world"; 3 console.log(str.substring(-7,5));//(0,5) 4 console.log(str.substring(2,-5));//(0,2) 5 </script>
3.substr()截取;
語法:
stringObject.substr(start.len)
功能:
截取子字符串。
參數說明:
1.start:必需,指定子字符串的開始位置。
2.len:可選,表示截取的字符總數,省略時截取至字符串的末尾。
3.當start為負數時,會將傳入的負值與字符串的長度相加。
4.當len為負數時,返回空字符串。
1 <script> 2 var str="hello world"; 3 console.log(str.substr(6,3)); //等價于str.substring(6,9) 4 console.log(str.substr(-5,4));//(6,4) 5 console.log(str.substr(3,-4));// 空截取個數為負數或0 則返回空字符串 6 </script>
1 <script type="text/javascript"> 2 //獲取擴展名 3 var url="http://baidu.com/index.txt" 4 function getFileFormat(url){ 5 //獲取.在URL中出現的位置 6 var pos=url.lastIndexOf("."); 7 return url.substr(pos); 8 } 9 var formatName=getFileFormat(url); 10 var picFormat=getFileFormat("123456789.jpg"); 11 console.log(formatName); 12 console.log(picFormat); 13 </script>
1.split()
stringObj.split(separator)
把一個字符串分割成字符串數組 返回值:Array 說明:必需,分隔符.
1 <script type="text/javascript"> 2 var str="welcome-to-beijing"; 3 //使用split將str轉化為數組 4 var arr=str.split("-"); 5 console.log(arr);//["welcome","to","beijing"] 6 var date="2016/05/05"; 7 var dateArr=date.split(""); 8 console.log(dateArr);//["2016","05","05"] 9 </script>
2 replace()
stringObj.replace(regexp/substr, replacement)
在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。
返回值:string
參數:regexp:必需。規定子字符串或要替換的模式的RegExp對象。 replacement:必需,一個字符串值.
1 <script> 2 //替換 replace 3 var tel="010-62971268,010-64899373,010-34565767"; 4 //newTel被替換之后的字符串 5 var newTel=tel.replace(','," "); 6 console.log(newTel); 7 </script>
掌握字符串方法的其他方法:
1.toUpperCase():
語法: stringObject.toUpperCase() 功能: 把字符串轉換為大寫
2.toLowerCase():
語法: stringObject.toLowerCase() 功能: 把字符串轉化為小寫
3.將字符串border-left-color轉換成borderLeftColor
*請認真填寫需求信息,我們會在24小時內與您取得聯系。