注册本站  论坛  繁體中文

电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> 网页设计 >> Javascript >> 网页设计正文

JavaScript扩展:正则像函数一样调用

文章来源:蓝色理想 blank 作者:佚名 更新时间:2008-3-20 12:59:34 【 】 【加入收藏

原文地址:《Regular Expressions As Functions》

Firefox 包含了一个非标准的 JavaScript 扩展,使正则像函数一样可调用。这为调用正则的 exec 方法提供了便捷。例如,在 Firefox中,regex(”string”) 等同于 regex.exec(”string”)。曾经 ECMAScript 4 建议指出这个功能将会增加到 ES4 规范中,但后来的在 ES4-discuss mailing list 的讨论中,这个建议可能被废除。

然而,你可以通过增加 call 和 apply 方法到 RegExp.prototype 中类似的现实这些方法。既有助于功能设计,又可实现对函数和正则表达式均有效的隐藏类型(duck-typed )代码。因此,让我们增加这些方法。

注意上面的两个方法完全忽略 context 参数,你可以提交 null 或者 任何其他作为 context 的对象,并且你将会类似的得到正则 exec 方法的返回值。使用上面的方法,无论在什么情况下,使我们正常地使用正则表达式和函数变得容易得多。一些很明显的例子,比如这些在 JavaScript 1.6 的数组迭代中很有用。下面的 filter, every, some, 和 map 方法的执行可以跨浏览器。

因为exec 方法返回数组或 null 值,并会恰当的类型转换为 true 和 false,上面的代码允许我们像这样使用:[”a”,”b”,”ab”,”ba”].filter(/^a/),返回所有以“a”开始的值:[”a”,”ab”]。

确实,在 Firefox 中已经实现了 Array.prototype.filter ,由于 exec 的间接调用已经在该浏览器中起作用了。但是如果 filter 没有添加 RegExp.prototype.call 方法,却无法跨浏览器执行。

  • 上一篇网页设计:

  • 下一篇网页设计:
  • 最 新 热 门
     Flash AS教程:decorator Pattern
     Flash AS教程:复制粘贴类
     Flash教程:彻底学习RadioButton组件
     Flash AS3教程:动态文本滚动条
     Flash教程:制作随机画圆弧动画
     全Flash动画网站的实现详细教程
     Flash 播放器的安全性设置
     Fireworks8教程:用素材制作炫酷的闪字效果
     Fireworks打造javascript图片提示效果
     Firewoks实例:铅笔图标
    最 新 推 荐
     学习JavaScript的事件
     PHP+JS实现搜索自动提示
     初学Ajax须注意的几个问题
     JavaScript扩展:正则像函数一样调用
     Javascript在IE和FF里的兼容问题
     Javascript教程:展示风格的价值
     防止屏蔽,背投广告代码的完善
     Javascript事件处理代码的三种写法
     使用createElement动态创建HTML对象
     解决JS脚本兼容的几个小技巧
    相 关 文 章

    Fireworks打造javascript图片提示效果
    学习JavaScript的事件
    初学Ajax须注意的几个问题
    Javascript在IE和FF里的兼容问题
    Javascript教程:展示风格的价值
    Dreamweaver制作网页小技巧汇集
    Javascript事件处理代码的三种写法
    JavaScript教程:判断日期正确与否的函数
    JavaScript教程:关于时间格式转换
    Dreamweaver定义模板批量制作web网页

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

     

    Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    本网站所有内容未经许可不得转载或做其他使用