JavaScript replace(rgExp,fn)正则替换的用法

 更新时间:2010年03月04日 13:24:54   作者:  
再看jQuery源码的时候遇到了replace中参数为函数的用法,正好复习一下replace正则替换的用法。
代码如下:
复制代码 代码如下:

var rxhtmlTag = /(<([\w:]+)[^>]*?)\/>/g,
rselfClosing = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,
fcloseTag = function(all, front, tag) {
return rselfClosing.test(tag) ?
        all :
        front + "></" + tag + ">";
};
//转换"Xhtml" 风格的标签为标准HTML标签
//如<tag/> 为 <tag></tag>
elem = elem.replace(rxhtmlTag, fcloseTag);


主要看 fcloseTag = function(all, front, tag){}
第一个参数all是通过rxhtmlTag匹配的整个字符串
第二个参数front是通过rxhtmlTag匹配的 第一个 左括号"(" 中的内容
第三个参数tag是通过rxhtmlTag匹配的 第二个 左括号"(" 中的内容

参数的个数根据 正则表达式中 左括号的个数成正比,按照从左到右的参数的位置和左括号的位置也一一对应。

相关文章

  • Array.slice()与Array.splice()的返回值类型

    Array.slice()与Array.splice()的返回值类型

    Array.slice()与Array.splice()的返回值类型...
    2006-10-10
  • jquery和javascript的区别(常用方法比较)

    jquery和javascript的区别(常用方法比较)

    jquery 就对javascript的一个扩展,封装,就是让javascript更好用,更简单,为了说明区别,下面与大家分享下JavaScript 与JQuery 常用方法比较
    2013-07-07
  • JavaScript中的Promise使用详解

    JavaScript中的Promise使用详解

    这篇文章主要介绍了JavaScript中的Promise使用详解,promise对象是JS进阶学习中的重要知识点,需要的朋友可以参考下
    2015-06-06
  • Underscore.js 1.3.3 中文注释翻译说明

    Underscore.js 1.3.3 中文注释翻译说明

    Underscore一个JavaScript实用库,提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象,本文就翻译了它的源代码中的注释,需要的朋友可以参考下
    2015-06-06
  • JavaScript中二维数组的创建技巧

    JavaScript中二维数组的创建技巧

    二维数组本质上是以数组作为数组元素的数组,即"数组的数组",类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素
    2021-11-11
  • 用JS实现一个TreeMenu效果分享

    用JS实现一个TreeMenu效果分享

    用JS实现一个TreeMenu效果分享,思路比较简单,但很实用
    2011-08-08
  • 深入分析js的冒泡事件

    深入分析js的冒泡事件

    本文通过几段示例代码,给我们深入分析了下javascript的冒泡事件,非常的详细,这里推荐给大家,希望对大家有所帮助
    2014-12-12
  • 详解js闭包

    详解js闭包

    闭包是一个比较抽象的概念,尤其是对js新手来说.书上的解释实在是比较晦涩,对我来说也是一样.
    2014-09-09
  • javascript实现计算器功能详解流程

    javascript实现计算器功能详解流程

    这篇文章主要为大家详细介绍了JavaScript实现简单计算器小功能,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,大家可以在本篇实例中查缺补漏,提升水平
    2021-11-11
  • javascript基础知识分享之类与函数化

    javascript基础知识分享之类与函数化

    在C++中是以class来声明一个类的,JavaScript与C++不同,它使用了与函数一样的function来声明,这就让许多学Jscript的朋友把类与函数混在一起了,在Jscript中函数与类确实有些混,但使用久了自然会理解,这篇文章是针对想进攻面向对象编程的朋友而写,就不打算讨论得太深了
    2016-02-02

最新评论