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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第5章

字符串處理

字符串處理應用示例5.2JavaScript字符串處理函數5.1字符串是字符的序列,是組織字符的基本數據結構,字符串處理對于絕大多數程序來說都是非常重要的。在JavaScript中字符串幾乎無處不在,字符串的訪問、查找、處理是JavaScript編程中經常需要面臨的問題。JavaScript中的字符串處理分為兩類:一類是基本的字符串處理函數,主要通過String對象的方法完成;另一類則是通過正則表達式進行相關的字符串處理,String對象和第4章介紹的RegExp對象都提供了相應的方法進行正則表達式的匹配和替換。1.length屬性Length屬性返回字符串的長度。用法:strobj.length2.fromCharCode方法fromCharCode方法根據一串Unicode編碼,返回相應的字符串。用法:String.fromCharCode(code1,code2,...)3.toString方法toString方法返回字符串的值。用法:strObj.toString()5.charAt方法charAt方法返回字符串中指定位置處的字符。用法:strObj.charAt(index)6.charCodeAt方法charCodeAt方法返回字符串中指定位置處字符的Unicode編碼。用法:strObj.charCodeAt(index)5.1.2查找字符串使用indexOf和lastIndexOf方法,我們可以在字符串中查找指定字符串的位置,以下是它們的用法說明和示例。2.lastIndexOf方法lastIndexOf方法在字符串中倒序查找子字符串,返回第一次出現子字符串的位置。用法:strobj.lastIndexOf(substring[,startindex])5.1.3比較字符串比較字符串主要采用localeCompare方法。localeCompare方法將字符串與另一個字符串比較,返回比較結果。當字符串小于目標字符串時,返回一個負數;當字符串大于目標字符串時,返回一個正數;兩者相等時,返回零。用法:strobj.localeCompare(strobj2)5.1.4修改字符串修改字符串的目的是為了得到新的字符串,具體操作有連接已有字符串、從已有字符串中截取一部分和將已有字符串進行大小寫的轉換,相關的方法包括concat(),slice(),substring(),toLowerCase(),toLocaleLowerCase(),toUpperCase()和toLocaleUpperCase()。2.slice方法Slice方法返回字符串的片段。用法:strobj.slice(start[,end])3.substring方法Substring方法返回字符串的片段。用法:strobj.split(start[,end])4.toLowerCase方法toLowerCase方法返回字符串的小寫形式。用法:strobj.toLowerCase()6.toUpperCase方法toUpperCase方法返回字符串的大寫形式。用法:strobj.toUpperCase()7.toLocaleUpperCase方法toLocaleUpperCase方法根據宿主環(huán)境的區(qū)域設置,返回字符串的大寫形式。用法:strobj.toUpperCase()5.1.5正則表達式匹配與替換1.match方法match方法使用正則表達式對字符串進行匹配查找,并將查找到的結果以數組的形式返回。用法:strobj.match(regExp)2.replace方法replace方法使用正則表達式的方式對字符串進行替換。用法:strobj.replace(regExp,replaceText)replaceText參數有3種可能的情況。(1)replaceText是普通文本(2)replaceText是匹配變量(3)replaceText是一個函數

【例5-1】

使用replace方法實現字符串的截斷【例5-2】截斷指定字符5.2字符串處理應用示例5.2.1計算字符串長度通常情況下,在JavaScript中獲取字符串的長度大多使用String對象的length屬性,但是涉及中文字符,問題就出現了。例如,字符串“大家好”,使用length屬性將會返回6,是字符串的字節(jié)長度,而通常希望得到的長度是其真實的長度3。要解決這個長度計算問題,其基本思路是這樣的:首先使用正則表達式將字符串的中文字符替換為普通的字母或者其他普通字符,然后再計算長度。漢字對應的Unicode編碼是在一定范圍內的,因此匹配中文字符的正則表達式是:[u4e00-u9fa5],計算字符串實際長度的函數如例5-3所示。【例5-3】

獲取字符串長度【例5-4】

獲取字符串長度

5.2.2字符串驗證在JavaScript中進行字符串格式驗證的最佳方法是使用正則表達式,調用正則表達式對象的test方法即可進行字符串的驗證。例如驗證字符串是否符合“4位數字-8位數字”的格式,可以通過如下的JavaScript代碼實現:varstr="8";varre=/^\d{4}-\d{8}$/;alert(re.test(str)); //輸出true表5-1 常用正則表達式驗

型正則表達式電子郵件\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*URL[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?日期((((19){1}|(20){1})d{2})|d{2})[01]{1}d{1}[0-3]{1}d{1}匹配格式如:20070416,070416,范圍1900~2099年驗

型正則表達式中國郵政編碼[1-9]\d{5}(?!\d)國內電話號碼\d{3}-\d{8}|\d{4}-\d{7}手機號碼^[+]{0,1}(\d){1,3}[]?([-]?((\d)|[]){1,12})+$ISBN號碼\d-\d{5}-\d{3}-\d身份證號\d{15}|\d{17}[0-9*]信用卡號VISA:^(?:(?:[4])(?:\\d{12}|\\d{15}))$Master:^5[1-5]\d{2}[\s\-]?\d{4}[\s\-]?\d{4}[\s\-]?\d{4}$IP地址\d+\.\d+\.\d+\.\d+QQ號碼[1-9][0-9]{4,}非負整數^\\d+$正整數^[0-9]*[1-9][0-9]*$非正整數^((-\\d+)|(0+))$負整數^-[0-9]*[1-9][0-9]*$非負浮點數^\\d+(\\.\\d+)?$正浮點數^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$非正浮點數^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$負浮點數^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$浮點數^(-?\\d+)(\\.\\d+)?$文件名/目錄名[^\\\/\*\?\|:"<>]5.2.3字符串填充字符串填充,是指將字符串用指定的字符填充到一定長度。常見的應用場景:填寫某些編碼時要求輸出固定長度的編碼,例如原始字符串為“111”,用字符“0”填充到8位長度,結果為“”。填充字符串的函數應該支持從字符串開始位置和結束位置填充兩種方式,實現代碼如例5-5所示?!纠?-5】

字符串填充函數【例5-6】改進后的字符串填充函數5.2.4字符串連接字符串連接是最常見的字符串操作之一,應用最多的應該就是“+=”操作符了。對于規(guī)模較小的字符串連接操作而言,因為不需要過多地考慮效率問題,使用“+=”操作符沒有什么不妥,但是如果遇到大量的字符串連接操作,直接使用“+=”操作符并不一定是最優(yōu)的方法。除了使用“+=”操作符進行字符串連接之外,在JavaScript中還可以使用Array對象的join方法實現字符串的連接。使用Array對象連接字符串的步驟是:首先創(chuàng)建一個空的Array對象,然后將字符串依次插入到Array對象中,最后調用join方法得到連接后的字符串。

【例5-7】JavaScript中的StringBuffer類【例5-8】StringBuffer類測試代碼

5.2.5首字母大寫所謂首字母大寫,是指將字符串中的第一個單詞或者所有單詞的首字母大寫。其實現思路:使用正則表達式匹配第一個單詞或者所有單詞,將匹配到的單詞首字母大寫,如例5-9所示?!纠?-9】

首字母大寫函數5.2.6屏蔽非法用詞屏蔽非法用詞,是指將字符串中非法用詞用“*”號代替。其實現思路:使用正則表達式匹配所有非法用詞,將非法用詞中的每個字符用“*”號代替,如例5-10所示?!纠?-10】

屏蔽非法函數5.2.7刪除HTML標簽刪除HT

溫馨提示

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

最新文檔

評論

0/150

提交評論