欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

幾個高效,簡潔的字符處理函數(shù)

 更新時間:2007年04月12日 00:00:00   作者:  
              都是基于 String.prototype 的擴(kuò)展:
 起因是有個網(wǎng)友和我討論兩個函數(shù),
一個是 isDateTime (判斷字符是否是符合 yyyy-mm-dd hh:mm:ss日期格式)
另一個是 left 函數(shù),類似vbscript的left 實(shí)現(xiàn)中英文字符的混合截取。
他兩個函數(shù)都用了循環(huán),還用了N多 if 語句,每個函數(shù)都超過了40行代碼,問我有無好的辦法精簡一下。
于是,我就寫出了下面的代碼,不敢說最效率最高,但是已經(jīng)是夠精簡了, left函數(shù)才1行 
 
復(fù)制代碼 代碼如下:

1 <script type="text/javascript"> 
 2  
 3 //by Go_Rush(阿舜) from http://ashun.cnblogs.com/ 
 4  
 5 function $A(arrayLike){ 
 6     for(var i=0,ret=[];i<arrayLike.length;i++) ret.push(arrayLike[i]) 
 7     return ret 
 8 }; 
 9 Array.prototype.any=function(f){ 
10     for(var i=0;i<this.length;i++) if (f(this[i],i,this)) return true; 
11     return false 
12 }; 
13  
14  
15  
16 //判斷 字符串 是否符合 yyyy-mm-dd hh:mm:ss的日期格式, 格式正確而且閏年閏月等也要正確 
17  
18 String.prototype.isDateTime=function(){   
19     try{ 
20         var arr=(this.length==19)?this.split(/\D/):[] 
21         --arr[1] 
22         eval("var d=new Date("+arr.join(",")+")")     
23         return     Number(arr[0])==d.getFullYear() && Number(arr[1])==d.getMonth()  
24                      && Number(arr[2])==d.getDate() && Number(arr[3])==d.getHours() 
25                     && Number(arr[4])==d.getMinutes() && Number(arr[5])==d.getSeconds() 
26     }catch(x){return false} 
27 } 
28  
29 /* 
30 alert("2002-12-12 10:10:40".isDateTime())  //true 
31 alert("2002-02-31 10:10:40".isDateTime())  //false 
32 alert("2002-22-31 10:10:40".isDateTime())  //false 
33 alert("2002-22-31 30:10:40".isDateTime())  //false 
34 */ 
35  
36  
37 // 檢查 是否以特定的字符串結(jié)束 
38 String.prototype.startsWith=function(){ 
39     var _string=this 
40     return $A(arguments).any(function(value){return _string.slice(0,value.length)==value}) 
41 }; 
42 /* 
43 alert("http://www.google.com/".startsWith("http://","ftp://","telnet://"))  //true  滿足其中任何一個就返回 true 
44 alert("http://www.google.com/".startsWith("https://","file://"))  //false 
45 alert("abc".startsWith("a"))  //true 
46 */ 
47  
48  
49 // 檢查 是否以特定的字符串結(jié)束 
50 String.prototype.endsWith=function(){ 
51     var _string=this 
52     return $A(arguments).any(function(value){return _string.slice(value.length*(-1))==value}) 
53 }; 
54  
55  
56  
57 //從左邊截取n個字符 ,如果包含漢字,則漢字按兩個字符計算 
58 String.prototype.left=function(n){ 
59     return this.slice(0,n-this.slice(0,n).replace(/[\x00-\xff]/g,"").length) 
60 }; 
61 /* 
62 alert("abcdefg".left(3)==="abc") 
63 alert("中國人cdefg".left(5)==="中國") 
64 alert("中國abcdefg".left(5)==="中國a") 
65 */ 
66  
67  
68  
69  
70 //從右邊截取n個字符 ,如果包含漢字,則漢字按兩個字符計算 
71 String.prototype.right=function(n){ 
72     return this.slice(this.slice(-n).replace(/[\x00-\xff]/g,"").length-n) 
73 }; 
74  
75 /* 
76 alert("abcdefg".right(3)==="efg") 
77 alert("cdefg中國人".right(5)==="國人") 
78 alert("abcdefg中國".right(5)==="g中國") 
79 */ 
80  
81 </script>

相關(guān)文章

  • 分享10個原生JavaScript技巧

    分享10個原生JavaScript技巧

    本文給大家分享的是個人總結(jié)的10條非常常用的原生javascript的小技巧,都是平時項目中用到的,這里總結(jié)記錄下來,有需要的小伙伴可以參考下。
    2015-04-04
  • 10個必備的JavaScript?async/await工具函數(shù)分享

    10個必備的JavaScript?async/await工具函數(shù)分享

    當(dāng)談到異步編程時,async/await是JavaScript中常用的功能之一,本文為大家整理了10個常用的await和async函數(shù)示例,感興趣的小伙伴可以參考一下
    2023-12-12
  • Javascript的爺孫通信和組件自調(diào)用詳解

    Javascript的爺孫通信和組件自調(diào)用詳解

    這篇文章主要為大家詳細(xì)介紹了Javascript的爺孫通信和組件自調(diào)用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 微信開發(fā) 消息推送實(shí)現(xiàn)代碼

    微信開發(fā) 消息推送實(shí)現(xiàn)代碼

    這篇文章主要介紹了微信開發(fā) 消息推送實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • JavaScript高級程序設(shè)計 閱讀筆記(十四) js繼承機(jī)制的實(shí)現(xiàn)

    JavaScript高級程序設(shè)計 閱讀筆記(十四) js繼承機(jī)制的實(shí)現(xiàn)

    繼承是面向?qū)ο笳Z言的必備特征,即一個類能夠重用另一個類的方法和屬性。在JavaScript中繼承方式的實(shí)現(xiàn)方式主要有以下五種:對象冒充、call()、apply()、原型鏈、混合方式
    2012-08-08
  • javascript變量作用域使用中常見錯誤總結(jié)

    javascript變量作用域使用中常見錯誤總結(jié)

    剛看了一篇文章對js作用域的理解又會上升到一個新的臺階,javascript里變量作用域是個經(jīng)常讓人頭痛抓狂的問題,接下來對經(jīng)常遇到又容易出錯的情況進(jìn)行了簡單總結(jié),感興趣的各位可以參考下哈
    2013-03-03
  • js canvas實(shí)現(xiàn)隨機(jī)粒子特效

    js canvas實(shí)現(xiàn)隨機(jī)粒子特效

    這篇文章主要為大家詳細(xì)介紹了js canvas隨機(jī)粒子特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • laravel實(shí)現(xiàn)中文和英語互相切換的例子

    laravel實(shí)現(xiàn)中文和英語互相切換的例子

    今天小編就為大家分享一篇laravel實(shí)現(xiàn)中文和英語互相切換的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • Javascript 的addEventListener()及attachEvent()區(qū)別分析

    Javascript 的addEventListener()及attachEvent()區(qū)別分析

    大家都知道事件的用法就是當(dāng)某個事件(狀況)被觸發(fā)了之后就會去執(zhí)行某個Function, 尤其是Javascript, 在當(dāng)紅AJAX的催化下, 了解Javascript的Event用法更加重要, 在這里就大概介紹一下avascript的Event用法.
    2009-05-05
  • ES6中字符串的使用方法擴(kuò)展

    ES6中字符串的使用方法擴(kuò)展

    這篇文章主要給大家介紹了關(guān)于ES6中字符串的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用ES6具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評論