中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 網(wǎng)頁制作 > 函數(shù)般調(diào)用正則
IE8的WebSlices 回到列表 3pxbug IE、FF解決方案
 函數(shù)般調(diào)用正則

作者:blank 時間: 2008-03-10 文檔類型:翻譯 來自:藍色理想

原文地址:《Regular Expressions As Functions》

Firefox 包含了一個非標(biāo)準(zhǔn)的 JavaScript 擴展,使正則像函數(shù)一樣可調(diào)用。這為調(diào)用正則的 exec 方法提供了便捷。例如,在 Firefox中,regex(”string”) 等同于 regex.exec(”string”)。曾經(jīng) ECMAScript 4 建議指出這個功能將會增加到 ES4 規(guī)范中,但后來的在 ES4-discuss mailing list 的討論中,這個建議可能被廢除。

然而,你可以通過增加 callapply 方法到 RegExp.prototype 中類似的現(xiàn)實這些方法。既有助于功能設(shè)計,又可實現(xiàn)對函數(shù)和正則表達式均有效的隱藏類型(duck-typed )代碼。因此,讓我們增加這些方法。

RegExp.prototype.call = function (context, str) {
return this.exec(str);
};
RegExp.prototype.apply = function (context, args) {
return this.exec(args[0]);
};

注意上面的兩個方法完全忽略 context 參數(shù),你可以提交 null 或者 任何其他作為 context 的對象,并且你將會類似的得到正則 exec 方法的返回值。使用上面的方法,無論在什么情況下,使我們正常地使用正則表達式和函數(shù)變得容易得多。一些很明顯的例子,比如這些在 JavaScript 1.6 的數(shù)組迭代中很有用。下面的 filter, every, some, 和 map 方法的執(zhí)行可以跨瀏覽器。

if (!Array.prototype.filter) {
// 返回一個數(shù)組,如果提供的過濾函數(shù)返回 true,則返回存在的數(shù)組中的元素。
Array.prototype.filter = function (func, context) {
var results = [];
for (var i = 0; i < this.length; i++) {
if (i in this && func.call(context, this[i], i, this))
results.push(this[i]);
}
return results;
};
}

if (!Array.prototype.every) {
// 返回 true ,如果數(shù)組中的每個元素滿足提供的測試函數(shù)。
Array.prototype.every = function (func, context) {
for (var i = 0; i < this.length; i++) {
if (i in this && !func.call(context, this[i], i, this))
return false;
}
return true;
};
}

if (!Array.prototype.some) {
// 返回 true,如果數(shù)組中至少有一個元素滿足提供的測試函數(shù)。
Array.prototype.some = function (func, context) {
for (var i = 0; i < this.length; i++) {
if (i in this && func.call(context, this[i], i, this))
return true;
}
return false;
};
}

if (!Array.prototype.map) {
// 返回一個數(shù)組,現(xiàn)有數(shù)組中的每個元素調(diào)用提供的函數(shù)的返回值。
Array.prototype.map = function (func, context) {
var results = [];
for (var i = 0; i < this.length; i++) {
if (i in this)
results[i] = func.call(context, this[i], i, this);
}
return results;
};
}

因為exec 方法返回數(shù)組或 null 值,并會恰當(dāng)?shù)念愋娃D(zhuǎn)換為 true 和 false,上面的代碼允許我們像這樣使用:[”a”,”b”,”ab”,”ba”].filter(/^a/),返回所有以“a”開始的值:[”a”,”ab”]。

確實,在 Firefox 中已經(jīng)實現(xiàn)了 Array.prototype.filter ,由于 exec 的間接調(diào)用已經(jīng)在該瀏覽器中起作用了。但是如果 filter 沒有添加 RegExp.prototype.call 方法,卻無法跨瀏覽器執(zhí)行。

本文鏈接:http://www.95time.cn/tech/web/2008/5444.asp 

出處:藍色理想
責(zé)任編輯:bluehearts

◎進入論壇網(wǎng)頁制作WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論

相關(guān)文章 更多相關(guān)鏈接
惰性函數(shù)定義模式
javascript的函數(shù)
Object對象的一些的隱藏函數(shù)介紹
匹配html標(biāo)記的正則
一個格式化數(shù)值的函數(shù)
作者文章 更多作者文章
z-index在IE中的迷惑
42個值得閱讀的設(shè)計/技術(shù)雜志
由淺入深漫談margin屬性
網(wǎng)站瀏覽器兼容的底線
display:inline-block的深入理解
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗 UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點最新 站點最新列表
周大!熬•自然”設(shè)計大賽開啟
國際體驗設(shè)計大會7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計算如何讓安全問題可控
云計算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機會
阿里行云
云手機年終巨獻,送禮標(biāo)配299起
阿里巴巴CTO王堅的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機主題設(shè)計大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺歷
Ps簡單繪制一個可愛的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡單的作品展示頁面
CSS定位機制之一:普通流
25個最佳最閃亮的Eclipse開發(fā)項目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule

藍色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請不要盜鏈到本站,且不準(zhǔn)打上各自站點的水印,亦不能抹去我站點水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計作品,如需使用,請與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請與我們聯(lián)系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯誤,請用報告錯誤,以利文檔及時修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請您注意:
·不良評論請用報告管理員,以利管理員及時刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評論管理人員有權(quán)保留或刪除其管轄評論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報告錯誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計》
犀利開發(fā)—jQuery內(nèi)核詳解與實踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2