国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

js函數般調用正則

2024-05-06 14:18:10
字體:
來源:轉載
供稿:網友

這為調用正則的 exec 方法提供了便捷。例如,在 Firefox中,regex(”string”) 等同于 regex.exec(”string”)。曾經 ECMAScript 4 建議指出這個功能將會增加到 ES4 規(guī)范中,但后來的在 ES4-discuss mailing list 的討論中,這個建議可能被廢除。

然而,你可以通過增加 call 和 apply 方法到 RegExp.prototype 中類似的現實這些方法。既有助于功能設計,又可實現對函數和正則表達式均有效的隱藏類型(duck-typed )代碼。因此,讓我們增加這些方法。
代碼如下:
RegExp.prototype.call = function (context, str) {
    return this.exec(str);
};
RegExp.prototype.apply = function (context, args) {
    return this.exec(args[0]);
};

注意上面的兩個方法完全忽略 context 參數,你可以提交 null 或者 任何其他作為 context 的對象,并且你將會類似的得到正則 exec 方法的返回值。使用上面的方法,無論在什么情況下,使我們正常地使用正則表達式和函數變得容易得多。一些很明顯的例子,比如這些在 JavaScript 1.6 的數組迭代中很有用。下面的 filter, every, some, 和 map 方法的執(zhí)行可以跨瀏覽器。
代碼如下:
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 ,如果數組中的每個元素滿足提供的測試函數。
    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,如果數組中至少有一個元素滿足提供的測試函數。
    Array.prototype.some = function (func, context) {

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 若尔盖县| 右玉县| 墨江| 招远市| 双峰县| 教育| 漾濞| 周至县| 伊吾县| 漳浦县| 濮阳县| 金阳县| 东乌| 开远市| 齐河县| 松潘县| 商水县| 永定县| 巩留县| 明星| 沾益县| 大安市| 当雄县| 台江县| 蛟河市| 黄浦区| 长汀县| 中山市| 湛江市| 离岛区| 平潭县| 长治县| 郴州市| 武邑县| 周至县| 沛县| 霍城县| 乌兰察布市| 永清县| 辽阳市| 皋兰县|