JavaScript字符串處理ppt課件_第1頁(yè)
JavaScript字符串處理ppt課件_第2頁(yè)
JavaScript字符串處理ppt課件_第3頁(yè)
JavaScript字符串處理ppt課件_第4頁(yè)
JavaScript字符串處理ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第5章字符串處理 字符串處理應(yīng)用示例5.2 JavaScript字符串處理函數(shù)5.1 字符串是字符的序列,是組織字符的基本數(shù)字符串是字符的序列,是組織字符的基本數(shù)據(jù)結(jié)構(gòu),字符串處理對(duì)于絕大多數(shù)程序來(lái)說(shuō)都是據(jù)結(jié)構(gòu),字符串處理對(duì)于絕大多數(shù)程序來(lái)說(shuō)都是非常重要的。非常重要的。 在在JavaScript中字符串幾乎無(wú)處不在,字符中字符串幾乎無(wú)處不在,字符串的訪問(wèn)、查找、處理是串的訪問(wèn)、查找、處理是JavaScript編程中經(jīng)常編程中經(jīng)常需要面臨的問(wèn)題。需要面臨的問(wèn)題。 JavaScript中的字符串處理分為兩類:一類中的字符串處理分為兩類:一類是基本的字符串處理函數(shù),主要通過(guò)是基本的字符串處理函數(shù),主

2、要通過(guò)String對(duì)象對(duì)象的方法完成;另一類則是通過(guò)正則表達(dá)式進(jìn)行相的方法完成;另一類則是通過(guò)正則表達(dá)式進(jìn)行相關(guān)的字符串處理,關(guān)的字符串處理,String對(duì)象和第對(duì)象和第4章介紹的章介紹的RegExp對(duì)象都提供了相應(yīng)的方法進(jìn)行正則表達(dá)式對(duì)象都提供了相應(yīng)的方法進(jìn)行正則表達(dá)式的匹配和替換。的匹配和替換。5.1 JavaScript字符串處理函數(shù) 5.1.1 訪問(wèn)字符串訪問(wèn)字符串 JavaScript中提供的訪問(wèn)字符中提供的訪問(wèn)字符串的屬性和方法包括串的屬性和方法包括length,String.fromCharCode(),toString(),valueOf(),charAt()和和charCod

3、eAt()。 以下給出了這些屬性和方法的以下給出了這些屬性和方法的說(shuō)明和用法。說(shuō)明和用法。1length屬性屬性 Length屬性返回字符串的長(zhǎng)度。屬性返回字符串的長(zhǎng)度。 用法:用法:strobj.length2fromCharCode方法方法 fromCharCode方法根據(jù)一串方法根據(jù)一串Unicode編碼,編碼,返回相應(yīng)的字符串。返回相應(yīng)的字符串。 用法:用法:String.fromCharCode(code1, code2, .)3toString方法方法 toString方法返回字符串的值。方法返回字符串的值。 用法:用法:strObj.toString()4valueOf方法方法

4、valueOf方法返回字符串的值與方法返回字符串的值與toString方法相同)。方法相同)。 用法:用法:strObj.valueOf()5charAt方法方法 charAt方法返回字符串中指定位置處的字方法返回字符串中指定位置處的字符。符。 用法:用法:strObj.charAt(index)6charCodeAt方法方法 charCodeAt方法返回字符串中指定位置處方法返回字符串中指定位置處字符的字符的Unicode編碼。編碼。 用法:用法:strObj.charCodeAt(index)5.1.2 查找字符串查找字符串 使用使用indexOf和和lastIndexOf方法,我們方法,

5、我們可以在字符串中查找指定字符串的位置,可以在字符串中查找指定字符串的位置,以下是它們的用法說(shuō)明和示例。以下是它們的用法說(shuō)明和示例。1indexOf方法方法 indexOf方法在字符串中順序查找子字符串,方法在字符串中順序查找子字符串,返回第一次出現(xiàn)子字符串的位置。返回第一次出現(xiàn)子字符串的位置。 用法:用法:strobj.indexOf(substring, startindex)2lastIndexOf方法方法 lastIndexOf方法在字符串中倒序查找子字方法在字符串中倒序查找子字符串,返回第一次出現(xiàn)子字符串的位置。符串,返回第一次出現(xiàn)子字符串的位置。 用法:用法:strobj.last

6、IndexOf(substring, startindex)5.1.3 比較字符串比較字符串 比較字符串主要采用比較字符串主要采用localeCompare方方法。法。localeCompare方法將字符串與另一個(gè)方法將字符串與另一個(gè)字符串比較,返回比較結(jié)果。字符串比較,返回比較結(jié)果。 當(dāng)字符串小于目標(biāo)字符串時(shí),返回一個(gè)當(dāng)字符串小于目標(biāo)字符串時(shí),返回一個(gè)負(fù)數(shù);當(dāng)字符串大于目標(biāo)字符串時(shí),返回負(fù)數(shù);當(dāng)字符串大于目標(biāo)字符串時(shí),返回一個(gè)正數(shù);兩者相等時(shí),返回零。一個(gè)正數(shù);兩者相等時(shí),返回零。 用法:用法:strobj.localeCompare(strobj2)5.1.4 修改字符串修改字符串 修改字

7、符串的目的是為了得到新的字修改字符串的目的是為了得到新的字符串,具體操作有連接已有字符串、從已符串,具體操作有連接已有字符串、從已有字符串中截取一部分和將已有字符串進(jìn)有字符串中截取一部分和將已有字符串進(jìn)行大小寫的轉(zhuǎn)換,相關(guān)的方法包括行大小寫的轉(zhuǎn)換,相關(guān)的方法包括concat(),slice(),substring(),toLowerCase(),toLocaleLowerCase(),toUpperCase()和和toLocaleUpperCase()。 1concat方法方法 concat方法用來(lái)連接兩個(gè)或者多個(gè)字符串。方法用來(lái)連接兩個(gè)或者多個(gè)字符串。 用法:用法:strobj.concat

8、(string1, string2, string3, .)2slice方法方法 Slice方法返回字符串的片段。方法返回字符串的片段。 用法:用法:strobj.slice(start, end)3substring方法方法 Substring方法返回字符串的片段。方法返回字符串的片段。 用法:用法:strobj.split(start, end)4toLowerCase方法方法 toLowerCase方法返回字符串的小寫形式。方法返回字符串的小寫形式。 用法:用法:strobj.toLowerCase()5toLocaleLowerCase方法方法 toLocaleLowerCase方法將

9、根據(jù)宿主環(huán)境的方法將根據(jù)宿主環(huán)境的區(qū)域設(shè)置,返回字符串的小寫形式。區(qū)域設(shè)置,返回字符串的小寫形式。 用法:用法:strobj.toLocaleLowerCase()6toUpperCase方法方法 toUpperCase方法返回字符串的大寫形式。方法返回字符串的大寫形式。 用法:用法:strobj.toUpperCase()7toLocaleUpperCase方法方法 toLocaleUpperCase方法根據(jù)宿主環(huán)境的方法根據(jù)宿主環(huán)境的區(qū)域設(shè)置,返回字符串的大寫形式。區(qū)域設(shè)置,返回字符串的大寫形式。 用法:用法:strobj.toUpperCase()5.1.5 正則表達(dá)式匹配與替換正則表達(dá)

10、式匹配與替換 1match方法方法 match方法使用正則表達(dá)式對(duì)字符串進(jìn)方法使用正則表達(dá)式對(duì)字符串進(jìn)行匹配查找,并將查找到的結(jié)果以數(shù)行匹配查找,并將查找到的結(jié)果以數(shù)組的形式返回。組的形式返回。 用法:用法:strobj.match(regExp)(1正則表達(dá)式?jīng)]有設(shè)置全局查找標(biāo)正則表達(dá)式?jīng)]有設(shè)置全局查找標(biāo)志志g),且不含子模式),且不含子模式 (2正則表達(dá)式?jīng)]有設(shè)置全局查找標(biāo)正則表達(dá)式?jīng)]有設(shè)置全局查找標(biāo)志志g),且包含子模式),且包含子模式 (3正則表達(dá)式設(shè)置了全局查找標(biāo)志正則表達(dá)式設(shè)置了全局查找標(biāo)志g) 2replace方法方法replace方法使用正則表達(dá)式的方式對(duì)字符串進(jìn)行替方法使用正

11、則表達(dá)式的方式對(duì)字符串進(jìn)行替換。換。用法:用法:strobj.replace(regExp, replaceText)replaceText參數(shù)有參數(shù)有3種可能的情況。種可能的情況。(1replaceText是普通文本是普通文本(2replaceText是匹配變量是匹配變量(3replaceText是一個(gè)函數(shù)是一個(gè)函數(shù) 【例【例5-1】 使用使用replace方法實(shí)現(xiàn)字符串的方法實(shí)現(xiàn)字符串的截?cái)嘟財(cái)?【例【例5-2】 截?cái)嘀付ㄗ址財(cái)嘀付ㄗ址?search方法方法 search方法在字符串中按正則表達(dá)式進(jìn)行查方法在字符串中按正則表達(dá)式進(jìn)行查找,返回符合模式的子字符串的首字符位找,返回符合模式的

12、子字符串的首字符位置。置。 用法:用法:strobj.search(regExp)4split方法方法 split方法將字符串分割為子字符串,并返回方法將字符串分割為子字符串,并返回由這些子字符串組成的數(shù)組。由這些子字符串組成的數(shù)組。 用法:用法:strobj.split(delimiter, limit)5.2 字符串處理應(yīng)用示例 5.2.1 計(jì)算字符串長(zhǎng)度計(jì)算字符串長(zhǎng)度 通常情況下,在通常情況下,在JavaScript中中獲取字符串的長(zhǎng)度大多使用獲取字符串的長(zhǎng)度大多使用String對(duì)象的對(duì)象的length屬性,但是涉及中文屬性,但是涉及中文字符,問(wèn)題就出現(xiàn)了。字符,問(wèn)題就出現(xiàn)了。 例如,字

13、符串例如,字符串“大家好大家好”,使,使用用length屬性將會(huì)返回屬性將會(huì)返回6,是字符,是字符串的字節(jié)長(zhǎng)度,而通常希望得到的串的字節(jié)長(zhǎng)度,而通常希望得到的長(zhǎng)度是其真實(shí)的長(zhǎng)度長(zhǎng)度是其真實(shí)的長(zhǎng)度3。 要解決這個(gè)長(zhǎng)度計(jì)算問(wèn)題,其基本思要解決這個(gè)長(zhǎng)度計(jì)算問(wèn)題,其基本思路是這樣的:首先使用正則表達(dá)式將字符路是這樣的:首先使用正則表達(dá)式將字符串的中文字符替換為普通的字母或者其他串的中文字符替換為普通的字母或者其他普通字符,然后再計(jì)算長(zhǎng)度。普通字符,然后再計(jì)算長(zhǎng)度。 漢字對(duì)應(yīng)的漢字對(duì)應(yīng)的Unicode編碼是在一定范圍編碼是在一定范圍內(nèi)的,因此匹配中文字符的正則表達(dá)式是:內(nèi)的,因此匹配中文字符的正則表達(dá)式

14、是:u4e00-u9fa5,計(jì)算字符串實(shí)際長(zhǎng)度的函數(shù),計(jì)算字符串實(shí)際長(zhǎng)度的函數(shù)如例如例5-3所示。所示。 【例【例5-3】 獲取字符串長(zhǎng)度獲取字符串長(zhǎng)度 【例【例5-4】 獲取字符串長(zhǎng)度獲取字符串長(zhǎng)度 5.2.2 字符串驗(yàn)證字符串驗(yàn)證 在在JavaScript中進(jìn)行字符串格式驗(yàn)證的中進(jìn)行字符串格式驗(yàn)證的最佳方法是使用正則表達(dá)式,調(diào)用正則表最佳方法是使用正則表達(dá)式,調(diào)用正則表達(dá)式對(duì)象的達(dá)式對(duì)象的test方法即可進(jìn)行字符串的驗(yàn)證。方法即可進(jìn)行字符串的驗(yàn)證。例如驗(yàn)證字符串是否符合例如驗(yàn)證字符串是否符合“4位數(shù)字位數(shù)字-8位數(shù)位數(shù)字的格式,可以通過(guò)如下的字的格式,可以通過(guò)如下的JavaScript代代

15、碼實(shí)現(xiàn):碼實(shí)現(xiàn): var str = 1234-12345678; var re = /d4-d8$/; alert(re.test(str); / 輸出輸出true表5-1常用正則表達(dá)式驗(yàn) 證 類 型正則表達(dá)式電子郵件w+(-+.w+)*w+(-.w+)*.w+(-.w+)*URLa-zA-z+:/(w+(-w+)*)(.(w+(-w+)*)*(?S*)?日期(19)1|(20)1)d2)|d2)011d10-31d1匹配格式如:20190416,070416,范圍19002099年驗(yàn) 證 類 型正則表達(dá)式中國(guó)郵政編碼1-9d5(?!d)國(guó)內(nèi)電話號(hào)碼d3-d8|d4-d7手機(jī)號(hào)碼+0,1(d

16、)1,3 ?(-?(d)| )1,12)+$ISBN號(hào)碼d-d5-d3-d身份證號(hào)d15|d170-9*信用卡號(hào)VISA:(?:(?:4)(?:d12|d15)$Master:51-5d2s-?d4s-?d4s-?d4$IP地址d+.d+.d+.d+QQ號(hào)碼1-90-94,非負(fù)整數(shù)d+$正整數(shù)0-9*1-90-9*$非正整數(shù)(-d+)|(0+)$負(fù)整數(shù)-0-9*1-90-9*$非負(fù)浮點(diǎn)數(shù)d+(.d+)?$正浮點(diǎn)數(shù)(0-9+.0-9*1-90-9*)|(0-9*1-90-9*.0-9+)|(0-9*1-90-9*)$非正浮點(diǎn)數(shù)(-d+(.d+)?)|(0+(.0+)?)$負(fù)浮點(diǎn)數(shù)(-(0-9+.

17、0-9*1-90-9*)|(0-9*1-90-9*.0-9+)|(0-9*1-90-9*)$浮點(diǎn)數(shù)(-?d+)(.d+)?$文件名/目錄名/*?|:5.2.3 字符串填充字符串填充 字符串填充,是指將字符串用指定的字符串填充,是指將字符串用指定的字符填充到一定長(zhǎng)度。字符填充到一定長(zhǎng)度。 常見(jiàn)的應(yīng)用場(chǎng)景:填寫某些編碼時(shí)要求常見(jiàn)的應(yīng)用場(chǎng)景:填寫某些編碼時(shí)要求輸出固定長(zhǎng)度的編碼,例如原始字符串為輸出固定長(zhǎng)度的編碼,例如原始字符串為“111”,用字符,用字符“0填充到填充到8位長(zhǎng)度,結(jié)位長(zhǎng)度,結(jié)果為果為“00000111”。 填充字符串的函數(shù)應(yīng)該支持從字符串填充字符串的函數(shù)應(yīng)該支持從字符串開(kāi)始位置和結(jié)

18、束位置填充兩種方式,實(shí)現(xiàn)開(kāi)始位置和結(jié)束位置填充兩種方式,實(shí)現(xiàn)代碼如例代碼如例5-5所示。所示。 【例【例5-5】 字符串填充函數(shù)字符串填充函數(shù) 【例【例5-6】 改進(jìn)后的字符串填充函數(shù)改進(jìn)后的字符串填充函數(shù) 5.2.4 字符串連接字符串連接 字符串連接是最常見(jiàn)的字符串操作之一,字符串連接是最常見(jiàn)的字符串操作之一,應(yīng)用最多的應(yīng)該就是應(yīng)用最多的應(yīng)該就是“+=”操作符了。操作符了。 對(duì)于規(guī)模較小的字符串連接操作而言,對(duì)于規(guī)模較小的字符串連接操作而言,因?yàn)椴恍枰^(guò)多地考慮效率問(wèn)題,使用因?yàn)椴恍枰^(guò)多地考慮效率問(wèn)題,使用“+=”操作符沒(méi)有什么不妥,但是如果遇到操作符沒(méi)有什么不妥,但是如果遇到大量的字符串

19、連接操作,直接使用大量的字符串連接操作,直接使用“+=”操操作符并不一定是最優(yōu)的方法。作符并不一定是最優(yōu)的方法。 除了使用除了使用“+=”操作符進(jìn)行字符串連接操作符進(jìn)行字符串連接之外,在之外,在JavaScript中還可以使用中還可以使用Array對(duì)對(duì)象的象的join方法實(shí)現(xiàn)字符串的連接。方法實(shí)現(xiàn)字符串的連接。 使用使用Array對(duì)象連接字符串的步驟是:對(duì)象連接字符串的步驟是:首先創(chuàng)建一個(gè)空的首先創(chuàng)建一個(gè)空的Array對(duì)象,然后將字符對(duì)象,然后將字符串依次插入到串依次插入到Array對(duì)象中,最后調(diào)用對(duì)象中,最后調(diào)用join方法得到連接后的字符串。方法得到連接后的字符串。 【例【例5-7】 JavaScript中的中的StringBuffer類類 【例【例5-8】 StringBuffer類測(cè)試代碼類測(cè)試代碼 5.2.5 首字母大寫首字母大寫 所謂首字母大寫,是指將字符串中的第所謂首字母大寫,是指將字符串中的第一個(gè)單詞或者所有單詞的首字母大寫。一個(gè)單詞或者所有單詞的首字母大寫。 其實(shí)現(xiàn)思路:使用正則表達(dá)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論