日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
淺析如何實(shí)現(xiàn)Javascript替換字符的方法

在這里我們將討論的是如何實(shí)現(xiàn)Javascript替換字符的方法,這一項(xiàng)功能在實(shí)際開發(fā)過程中其實(shí)很有作用,希望能起到事半功倍的效果。

成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作與策劃設(shè)計(jì),河源網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:河源等地區(qū)。河源做網(wǎng)站價(jià)格咨詢:028-86922220

不用多言,這種技術(shù)被廣泛應(yīng)用于表單驗(yàn)證,語法高亮和危險(xiǎn)字符過濾中。一段話如果很長,如果不想像下面那樣替換,我們得想些辦法了。

 
 
 
  1. str = str.   
  2. replace( /&(?!#?\w+;)/g , '&').      
  3. replace( /"([^"]*)"/g   , '“$1”'   ).     
  4. replace( /
  5. replace( />/g           , '>' ).     
  6. replace( /…/g           , '…' ).    
  7. replace( /“/g           , '“'  ).     
  8. replace( /”/g           , '”'  ).     
  9. replace( /‘/g           , '‘'  ).     
  10. replace( /’/g           , '’'  ).    
  11. replace( /—/g           , '—' ).     
  12. replace( /–/g           , '–'  ); 

上面這個還算短了,我看過一些論壇的JS代碼,在把Wind Code轉(zhuǎn)換成HTML時(shí),那真是瘋子似的寫上二三十行。其實(shí)我們大可以把這些匹配模式與替換后的字符放到一個哈希中,然后一口氣替換掉。

 
 
 
  1. var hash = {      
  2. '<' : '<' ,    
  3. '>' : '>',     
  4. '…' : '…',     
  5. '“' : '“' ,    
  6. '”' : '”' ,     
  7. '‘' : '‘' ,   
  8. '’' : '’' ,     
  9. '—' : '—',     
  10. '–' : '–' 
  11. };   
  12. str = str.     
  13. replace( /&(?!#?\w+;)/g , '&' ).     
  14. replace( /"([^"]*)"/g   , '“$1”'  ).     
  15. replace( /[<>…“”‘’—–]/g , function ( $0 ) {         
  16. return hash[ $0 ];     
  17. }); 

但這個缺陷也很明顯,如哈希的鍵必須是簡單的普通字符串,不能是復(fù)雜正則,這就是我們不得不分開的原因。replace在老一點(diǎn)的瀏覽器是不支持function的。為此,我們只好放棄上面***那個replace方式,Javascript替換字符方統(tǒng)一為普通字符串。

 
 
 
  1. String.prototype.multiReplace = function ( hash ) {    
  2. var str = this, key;      
  3. for ( key in hash ) {       
  4. if ( Object.prototype.hasOwnProperty.call( hash, key ) ) {             
  5. str = str.replace( new RegExp( key, 'g' ), hash[ key ] );         
  6. }      
  7. }      
  8. return str;   
  9. }; 

Object.prototype.hasOwnProperty.call( hash, key )是用來過濾繼承自原型的方法與屬性的。這樣一來,使用就簡單了:

 
 
 
  1. str = str.multiReplace({      
  2. '&(?!#?\\w+;)' :'&',   
  3. '"([^"]*)" : '“$1”',     
  4. '<' : '<' ,     
  5. '>' : '>',     
  6. '…' : '…',      
  7. '“' : '“' ,       
  8. '”' : '”' ,      
  9. '‘' : '‘' ,     
  10. '’' : '’' ,      
  11. '—' : '—',     
  12. '–' : '–' 
  13. });  

新聞名稱:淺析如何實(shí)現(xiàn)Javascript替換字符的方法
轉(zhuǎn)載來于:http://www.5511xx.com/article/dhopejc.html