在上一章中,我們學習了字符串的基礎知識,下面讓我們再前進一步,開始考慮可以對具有內(nèi)置方法和屬性的字符串進行一些有用的操作。
原始值(例如“New Delhi”)不能具有屬性或方法(因為它們不是對象)。
但是在JavaScript中,方法和屬性也可用于原始值,因為JavaScript在執(zhí)行方法和屬性時會將原始值視為對象。
length屬性返回字符串的長度。對于空字符串,長度為0。
var str = 'Java Script'; str.length;// return 11測試看看?/?
注意:空格也算作字符:
concat()方法用于連接兩個或多個字符串。
var a = 'NHOOO'; var b = 'COM'; var c = a.concat(b);測試看看?/?
注意:所有字符串方法都返回一個新值。它們不會更改原始變量。
toUpperCase()方法返回轉(zhuǎn)換為大寫形式的調(diào)用字符串值。
var str1 = "(cainiaoplus.com)"; var str2 = str1.toUpperCase();測試看看?/?
toLowerCase()方法返回轉(zhuǎn)換為小寫形式的調(diào)用字符串值。
var str1 = "(cainiaoplus.com)"; var str2 = str1.toLowerCase();測試看看?/?
indexOf()方法返回指定值在字符串中首次出現(xiàn)的位置(索引)。
var str = 'Air Pollution is introduction of chemicals to the atmosphere'; str.indexOf('Pollution');// 4測試看看?/?
注意:第一個字符的索引為0,第二個字符的索引為1,依此類推。
lastIndexOf()方法返回字符串中最后一次出現(xiàn)指定值的位置(索引)。
var str = 'Hello world, I repeat Hello world'; str.lastIndexOf('Hello');// 22測試看看?/?
indexOf()與lastIndexOf()返回-1如果值未找到:
var str = "(cainiaoplus.com)"; str.indexOf("fish"); str.lastIndexOf("beer");測試看看?/?
indexOf()與lastIndexOf()都接受第二個參數(shù)作為搜索的起始位置:
var str = 'HELLO WORLD HELLO'; str.indexOf('L', 6);測試看看?/?
search()方法執(zhí)行搜索以查找正則表達式和字符串之間的匹配項。
如果找到匹配項,它將返回第一個匹配項的位置,如果找不到匹配項,則將返回-1:
var str = 'The question is to be, or not to be, that is to be.'; var pos = str.search('to be');測試看看?/?
以下示例演示了帶i標志的正則表達式的使用(忽略大小寫):
var str = 'The question is TO BE, or not to be, that is to be.'; var pos = str.search(/to be/i);測試看看?/?
在本教程的后面,您將學到更多關于正則表達式的信息。
split()方法將字符串拆分為子字符串數(shù)組,然后返回新數(shù)組。
我們將使用split()方法通過以表示的空格字符分隔數(shù)組" "。
var str = 'can you help me?'; var arr = str.split(" ");測試看看?/?
現(xiàn)在我們在arr變量中有了一個新數(shù)組,我們可以使用索引號訪問每個元素:
arr[0]; // Air arr[2]; // is測試看看?/?
在以下示例中,我們將使用“i”作為分隔符:
var str = 'can you help me?'; var arr = str.split("i");測試看看?/?
如果將空字符串("")用作分隔符,則該字符串將轉(zhuǎn)換為字符數(shù)組:
var str = 'can you help me?'; var arr = str.split("");測試看看?/?
通過拆分字符串,您可以確定一個句子中有多少個單詞。
trim()方法從字符串的兩端刪除空格,但不能去除字符串之間的空白,空格可以是制表符或空格。
var greeting = " Hello world! "; greeting.trim();測試看看?/?
此方法是執(zhí)行刪除多余空白,常見的簡單方法。
replace()方法返回一個新字符串,該字符串具有部分或全部模式匹配項,并由替換項替換。
第一個參數(shù)將是要找到的值,第二個參數(shù)將是要替換為的值。
var str1 = 'The question is to be, or not to be, that is to be.'; var str2 = str1.replace('to be', 'ZZZ');測試看看?/?
默認情況下,replace()方法僅替換第一個匹配項。
要替換所有出現(xiàn)的內(nèi)容,請使用帶有g標志的正則表達式(全局搜索):
var str1 = 'The question is to be, or not to be, that is to be.'; var str2 = str1.replace(/to be/g, 'ZZZ');測試看看?/?
要替換不區(qū)分大小寫的代碼,請使用帶有i標志的正則表達式(忽略大小寫):
var str1 = 'The question is TO BE, or not to be, that is to be.'; var str2 = str1.replace(/to be/gi, 'ZZZ');測試看看?/?
在本教程的后面,您將學到更多關于正則表達式的信息。
有三種方法可以提取字符串的一部分:
slice()方法提取字符串的一部分,并將其作為新字符串返回,而無需修改原始字符串。
此方法有兩個參數(shù):開始索引(start)和結(jié)束索引(end)(不包括結(jié)束)。
本示例從索引3到索引9(10-1)提取字符串的一部分:
var str = 'Hello Javascript (cainiaoplus.com)'; var ext = str.slice(3, 10);測試看看?/?
注意:第一個字符的索引為0,第二個字符的索引為1,依此類推。
使用負索引從字符串末尾進行選擇:
var str = 'Hello Javascript (cainiaoplus.com)'; var ext = str.slice(-8, -3);測試看看?/?
如果省略第二個參數(shù),則此方法將切出字符串的其余部分:
var str = 'Hello Javascript (cainiaoplus.com)'; var ext = str.slice(3);測試看看?/?
下面的示例使用slice()僅提取最后一個字符:
var str = 'Hello Javascript (cainiaoplus.com)'; var ext = str.slice(-1);測試看看?/?
substring()方法類似于slice()方法。
區(qū)別在于substring()不能接受負索引值。
var str1 = 'can you help me?'; var str2 = str1.substring(4, 10);測試看看?/?
如果省略第二個參數(shù),則substring()method將提取字符串的其余部分:
var str1 = 'can you help me?'; var str2 = str1.substring(7);測試看看?/?
區(qū)別在于第二個參數(shù)指定了提取部分的長度。
以下示例用于substr()從索引4提取字符,長度為18:
var str1 = 'can you help me?'; var str2 = str1.substr(4, 18);測試看看?/?
如果省略第二個參數(shù),則substr()方法將提取字符串的其余部分:
var str1 = 'can you help me?'; var str2 = str1.substr(7);測試看看?/?
要從字符串末尾提取字符,請使用負索引值:
var str1 = 'Hello Javascript (cainiaoplus.com)'; var str2 = str1.substr(-6, 3); // tor測試看看?/?
有三種訪問字符串字符的方法:
方括號表示法[]
charAt()方法返回字符串中指定索引處的字符。
var str = 'Hello Javascript (cainiaoplus.com)'; str.charAt(1);// 返回 a測試看看?/?
下面的示例返回字符串的最后一個字符:
var str = 'Hello Javascript (cainiaoplus.com)'; str.charAt(str.length-1);測試看看?/?
charCodeAt()方法返回介于0和65535之間的整數(shù),該整數(shù)表示給定索引處的UTF-16代碼單元。
var str = 'Hello Javascript (cainiaoplus.com)'; str.charCodeAt(1);// 返回 97測試看看?/?
您可以使用方括號表示法返回字符串中的任何字符[]。
在方括號內(nèi),包括要返回的字符的索引號。
var str = 'Hello Javascript (cainiaoplus.com)'; str[0];// 返回 P str[1];// 返回 a測試看看?/?
有關完整的屬性和方法參考,請訪問我們的JavaScript String Reference。
參考部分包含所有字符串屬性和方法的描述和示例。