关于js中的Replace函数的简单疑问!

问题描述

function(s, c) { return s.replace(/{(w+)}/g, function(m, p) { return c[p]; })} 上面这个函数是什么意思啊?

解决方案

Javascript中的replace函数的第二个参数可以是函数。如果是函数,将会用该函数的返回值进行替换。/{(w+)}/g 匹配所有 花括号中间的文字。比如a{b}c这样会匹配出b。你的代码中的那个c多半是个map或对象。说到这你可能明白了吧,是个参数替换的方法。下面是示例,看得清楚些。function abc(s, c) {return s.replace(/{(w+)}/g, function(m, p) {console.log(m + ", " + p);//打印参数。return c[p];})}console.log(abc("a{b}c", {b : "BBB"}));输出如下:{b}, baBBBc <-最终结果。
解决方案二:
正则表达式:/{(w+)}/g,意思要全局匹配带有花括号并且之间至少一个字母的字符串,m是匹配成功的字符串,正则中的括号是得到匹配成功的字符传中分组匹配的结果,比如上面的例子,匹配 “a{b}c”,m 的值为{b},那么分组匹配的结果就是 b,改正则的意图:寻找出字符传s中花括号所包含的的字符对应的C的属性的值,替换掉整个花括号的内容。

时间: 2024-10-27 00:57:46

关于js中的Replace函数的简单疑问!的相关文章

JS中关于事件处理函数名后面是否带括号的问题_javascript技巧

今天总结一个关于事件处理程序的小细节.首先回顾一下事件处理的一些概念. JS中的事件处理(事件绑定)就是让某种或某些事件触发某些活动.有两种常见的形式,分别是DOM Level 0 和DOM Level 2.这两种方式最大的区别就在于DOM 0级事件处理只能用于事件冒泡,而DOM 2级事件处理却可以通过设置第三个参数来分别支持事件冒泡和事件捕获. DOM 0级事件处理一般是直接把一个函数分配给一个事件处理程序,既可以在元素中直接分配一个事件处理程序,如方式一所示;也可以在脚本中把函数分配给事件处

JS中的Replace方法使用经验分享

  本文给大家分享的是我们在使用javascript中的replace方法的时候需要注意的一个事项,我就是没有注意到,才被这个bug烦了好久,这里记录下来,有需要的小伙伴可以参考下. 最近查一个bug,原因是JS中的Replace方法造成的,当将一个字符串中有处需要替换时,一般会用到JS中的Replace方法,Replace方法的第一个参数如果是传的字符串,只会替换第一处.代码如下: 复制代码 代码如下: var str = "0CEA65D5-DB8E-4876-A6F8-C88AC7F0E1

JS中Date日期函数中的参数使用介绍

本文为大家详细介绍下JS中Date日期函数中的参数在实际使用中的介绍,感兴趣的朋友不要错过 要创建一个一个日期对象,可以使用以下的方式:   代码如下: var now=new Date()    当然,函数中没有传递任何参数,表示此对象now自动获取了当前的时间.    如果想要创建一个自定义时间的对象,则要对Date()进行参数的传递.而这个参数,必须是毫秒数(UTC时间1970年1月1日午夜起至自定义时间为止的毫秒数).    我们可以使用Date.parse()和Date.UTC()来获

JS中的Replace方法使用经验分享_javascript技巧

最近查一个bug,原因是JS中的Replace方法造成的,当将一个字符串中有处需要替换时,一般会用到JS中的Replace方法,Replace方法的第一个参数如果是传的字符串,只会替换第一处.代码如下: 复制代码 代码如下: var str = "0CEA65D5-DB8E-4876-A6F8-C88AC7F0E185,E846C244-8A19-4374-879B-0B1DC08D1747,6CB3EBA4-1E22-4E4D-8800-AE31130B6F5D"; alert(st

js中的getObject()函数

问题描述 js中的getObject()函数 var leftList = getObject("leftList");这个括号里面的是select的id 这句话是什么意思,得到的是什么东西?求解 解决方案 js拾遗: 函数字面量GetObject函数js string 函数大全 解决方案二: select这个dom对象.getObject应该是document.getElementById的简写

js中遍历Map对象的简单实例_javascript技巧

实例如下: console.log(jsonData);//火狐控制台打印输出: Object { fileNumber="文件编号", fileName="文件名称"} for(var key in jsonData) console.log("属性:" + key + ",值:"+ jsonData[key]); } 打印输出: 属性:fileNumber, 值:文件编号 属性:fileName, 值:文件名称 以上这篇j

js中获取键盘事件的简单实现方法_javascript技巧

<script type="text/javascript" language=JavaScript charset="UTF-8"> document.onkeydown=function(event){ var e = event || window.event || arguments.callee.caller.arguments[0]; if(e && e.keyCode==27){ // 按 Esc //要做的事情 } if(

js正则表达式之replace函数用法_正则表达式

正则表达式replace()函数: 此函数用指定的字符串替换字符串中与正则表达式匹配的子字符串. 返回值是一个替换后的新字符串. 这里只介绍正则表达式的相关操作,其他替换操作可以参阅javascript的String对象的replace()方法一文. 语法结构: stringObject.replace(regexp,replacement) 参数列表如下: 参数名称 语义解释 regexp 必需.RegExp对象. replacement 必需.一个字符串值.规定了替换文本或生成替换文本的函数

JavaScript中的Replace函数替换的问题

今天同事问我一个关于JavaScript中替换的问题,他又一段字符串"</SheetItems><ElectricalStatus>",希望用"!"来替换"<",用了replace函数却发现只能替换掉第一个"<". 如: <script language="javascript"> var str="</SheetItems><El