浅谈jQuery中replace()方法

今天在读jquery源码时,发现一个以前自己不曾注意过得问题,就是replece()的第二个参数为函数时的问题,以前只是知道replace()的第二个参数可以为函数,但是不知道该怎么操作,今天看到源码里用到了函数作为replace()的第二个参数时,感觉自己读起来比较吃力,于是准备整理下这个函数...

语法

stringObject.replace( regexp/substr, replacement)

返回值

返回一个新的字符串,是用replacement替换了regexp的第一次匹配或所欲匹配之后得到的

当replace()方法的参数replacement是函数时,在这种情况下,每个匹配都调用该函数,函数返回的字符串作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数是与模式中的子表达式匹配的字符串,可以有0个或多个这样的参数。接下来的参数是一个整数,声明了匹配在stringObject中出现的位置。最后一个参数是stringObject本身。这席话是抄至w3cschool,对于现在的我来说以上的那段话我看着不是很明白,也不能用自己的话来简单描述下,所以只能用实例来说明这一切

代码如下:

var string = "abc123-ii";
string.replace(/(\d)-([\da-z])/g,function( str1, str2, str3,str4,str5){
         console.log( str1 );// 3-i
         console.log( str2 );// 3(第一个捕获)
         console.log( str3 );// i(第二个不捕获组)
         console.log( str4 );// 5(匹配在string中出现的位置)
         console.log( str5 );// abc123-ii(string本身)
         return "I";
})

以上是今天我在看jquery源码

代码如下:

camelCase: function( string ) {
        return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
    },
fcamelCase = function( all, letter ) {
        return letter.toUpperCase();
    };

  时所引发的一些不明白,感觉现在自己对这个函数懂了的样子

然后现在我又想起不知道在以前什么时候,自已在用repleace()所遇到的对于那时的我来说是怪符号,形如“$1,$2”等等。现在夜来对这一问题来做一个解答了

$1,$2, $3.....表示捕获1,2,3....

代码如下:

var string = "abc123-ii";
console.log(string.replace(/(\d)-([\da-z])/g, "$1")); // 用捕获组1(3)去替换/(\d)-([\da-z])/g

 

$&表示与regexp相匹配的子串

代码如下:

var string = "abc123-ii";
console.log(string.replace(/(\d)-([\da-z])/g, "$&")); // 用与regexp相匹配的字串(3-i)去替换/(\d)-([\da-z])/g

$`表示位于匹配子串左侧的文本

代码如下:

var string = "abc123-ii";
console.log(string.replace(/(\d)-([\da-z])/g, "$`")); // 用匹配字串左侧的文本(abc12)去替换/(\d)-([\da-z])/g

$'表示位于匹配子串右侧的文本

代码如下:

var string = "abc123-ii";
console.log(string.replace(/(\d)-([\da-z])/g, "$‘")); // 用位于匹配字串右侧的文本去替换/(\d)-([\da-z])/g

  

 $$直接为$符号

代码如下:

var string = "abc123-ii";
console.log(string.replace(/(\d)-([\da-z])/g, "$$")); // 用$符号去替换/(\d)-([\da-z])/g

以上是自己对于replace()方法使用不明确的地方,本人前端小白,如果有写的不对的地方,或者有关于此方法更好用法的实例希望各位看官能够分享...

以上所述就是本文的全部内容了,希望大家能够喜欢。

(0)

相关推荐

  • jQuery中replaceAll()方法用法实例

    本文实例讲述了jQuery中replaceAll()方法用法.分享给大家供大家参考.具体分析如下: 此方法用匹配元素去替换指定的内容. replaceAll()方法的作用和replaceWith()方法是完全一样的. 语法结构: 复制代码 代码如下: $(content).replaceAll(selector) 参数列表: 参数 描述 content 用于替换的内容. selector 用于查找所要被替换的元素 实例实例: 复制代码 代码如下: <!DOCTYPE html> <htm

  • jQuery下通过replace字符串替换实现大小图片切换

    核心就是使用replace替换img src的图片路径,从而实现不同尺寸图片的切换. 下面这个动画就是显示了尺寸切换,单击"大图"按钮,则改变图片的src,加载大图,单击"小图"按钮,则又显示小图. replace用法简单讲解: 我其实也是新手,讲得不对望海涵. 字符串.replace(a,b);指的是用b将字符串含有a的部分代替,例如字符串obj="welcome to my website!"; obj.replace("my&qu

  • jQuery中replaceWith()方法用法实例

    本文实例讲述了jQuery中replaceWith()方法用法.分享给大家供大家参考.具体分析如下: 此方法将所有匹配的元素替换成指定的HTML或DOM元素. 需要注意的是此方法是追加内容,也就是原来的内容还在. 特别说明: HTML内容就是内容中可以包含HTML标签,并且能够被浏览器渲染. 文本内容是先将内容中的HTML预定义字符转换成html字符实体,这样HTML标签就不会被渲染. 语法结构: 复制代码 代码如下: $(selector).replaceWith(content) 参数列表:

  • jQuery标签替换函数replaceWith()的使用例子

    replaceWith简单使用 jQuery中,有一个强大的替换函数replaceWith(),使用非常简单,如: 页面有如下p标签 把所有p标签替换为"##" $('p').replaceWith('##'); 执行后的结果: 替换标签 利用这个replaceWith,我们可以把所有p标签替换为b标签,内容不变: $('p').each(function(){     $(this).replaceWith('<b>'+$(this).html()+'</b>

  • jquery replace方法去空格

    话不多说,请看代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> new docum

  • Jquery replace 字符替换实现代码

    示例:要修改图片的大小: <img id="rptComment_ctl01_Gravatar1" width="60" height="60" src="http://www.jb51.net/avatar.php?gravatar_id=f847fb8954f1750719d3feef3b033718&rating=G&size=60" /> 使用如下语句,将图片属性中的size替换. $(&q

  • jQuery替换节点用法示例(使用replaceWith方法)

    本文实例讲述了jQuery替换节点的方法.分享给大家供大家参考,具体如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script src="js/jquery-1.10.1.min.js" type="text/

  • 从jQuery.camelCase()学习string.replace() 函数学习

    功能 camelCase函数的功能就是将形如background-color转化为驼峰表示法:backgroundColor. 此函数在jQuery的data函数,以及涉及到css的诸多函数中都有用到. jQuery的实现 复制代码 代码如下: //正则匹配 rdashAlpha = /-([a-z])/ig, // camelCase替换字符串时的回调函数 fcamelCase = function( all, letter ) { return letter.toUpperCase(); }

  • 浅谈jQuery中replace()方法

    今天在读jquery源码时,发现一个以前自己不曾注意过得问题,就是replece()的第二个参数为函数时的问题,以前只是知道replace()的第二个参数可以为函数,但是不知道该怎么操作,今天看到源码里用到了函数作为replace()的第二个参数时,感觉自己读起来比较吃力,于是准备整理下这个函数... 语法 stringObject.replace( regexp/substr, replacement) 返回值 返回一个新的字符串,是用replacement替换了regexp的第一次匹配或所欲

  • 浅谈javascript中replace()方法

    定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 语法 stringObject.replace(regexp/substr,replacement) 返回值 一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的. 说明 字符串 stringObject 的 replace() 方法执行的是查找并替换的操作.它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后

  • 浅谈C++中replace()方法

    本文主要针对c++中常用replace函数用法给出九个样例程序: 用法一: /* *用str替换指定字符串从起始位置pos开始长度为len的字符 *string& replace (size_t pos, size_t len, const string& str); */ int main() { string line = "this@ is@ a test string!"; line = line.replace(line.find("@")

  • 浅谈jQuery中setInterval()方法

    定义和用法: setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式. setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭.由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数. var time=0: 用法1: function jump(){ ---- //函数内容 } time = setInterval("jump",5000); //每个五秒调用一

  • 浅谈jquery中的each方法$.each、this.each、$.fn.each

    jquery.each 方法 方法一 $("img").each(function(i,elem){ // i 下标 从零开始, // elem == this // $(elem).toggleClass("example"); $(this).toggleClass("example"); }); 方法二 $.each([1,2,3,4],function(){ //$(this)==数组中的每一个数组(如果数组是对象,就是对象) }); 方

  • 浅谈jQuery中的$.extend方法来扩展JSON对象

    $.extend方法可以扩展JSON对象,用一个或多个其他对象来扩展一个对象,返回被扩展的对象. 例一 合并 settings 和 options,修改并返回 settings var settings = { validate: false, limit: 5, name: "foo" }; var options = { validate: true, name: "bar" }; jQuery.extend(settings, options); 结果 set

  • 浅谈jQuery中事情的动态绑定

    在jQuery的开发过程中,我们往往需要处理各种事件,例如click(),hover()等.在jQuery的API中,我们可以使用不同的方法来将这些事件绑定到特定的元素中.今天这篇文章中,我们将要介绍如何使用bind(),on(),live()和delegate()方法来绑定特定的事件,什么情况下使用,什么情况下不适用它们.希望能够帮助大家更好的了解和使用jQuery的时间处理方法. 一.bind()方法 使用较早版本jQuery的教程或者应用中,我们往往使用bind()方法来将事件绑定到特定的

  • 浅谈Jquery中Ajax异步请求中的async参数的作用

    之前不知道这个参数的作用,上网找了前辈的博客,在此收录到自己的博客,希望能帮到更多的朋友: test.html <a href="javascript:void(0)" onmouseover="testAsync()"> asy.js function testAsync{ var temp; $.ajax({ async: false, type : "GET", url : 'tet.php', complete: functi

  • 浅谈jQuery 中的事件冒泡和阻止默认行为

    1.事件冒泡 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+reque

  • 浅谈jQuery中Ajax事件beforesend及各参数含义

    Ajax会触发很多事件. 有两种事件,一种是局部事件,一种是全局事件: 局部事件:通过$.ajax来调用并且分配. $.ajax({ beforeSend: function(){ // Handle the beforeSend event }, complete: function(){ // Handle the complete event } // ... }); 全局事件,可以用bind来绑定,用unbind来取消绑定.这个跟click/mousedown/keyup等事件类似.但他

随机推荐