js replace() 文本替换你所不知的

 更新时间:2010年03月17日 19:30:27   作者:  
今天看了一个函数,功能是把形如word-word的字符串转化为wordWord
复制代码 代码如下:

//把word-word转化为wordWord
function camelize(s){
return s.replace(/-(\w)/g, function(strMatch, p1){
return p1.toUpperCas();
});
}

这里应用到了文本替换函数replace,他的一般语法估计大家都已经耳熟能详了,现在介绍一下当他的第二个参数为函数时的情形。

今天我在群里发这个函数的时候,有个人反映很快,说上面的那个正则写错了“/-(\w)/g”,而后很快又明白了,他的疑惑是这个“()”,其实这个括号是很必要的:

(x)匹配x,将x保存在名为$1,$2...$9的变量中,其实就是给其加一个索引,方便后面的调用。如果不加这个括号就会出错了:


好的,下面介绍一下函数参数的意义,为什么这个函数能够实现指定的功能呢?

ECMAScript v3 规定,replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。

看起来好像有点烦,举个例子:

复制代码 代码如下:

camelize(www-rrr);

也就是调用一下,其实上面的strMatch值为-r,就是与正则匹配的字符串(该函数的第一个参数是匹配模式的字符串),

上面的p1的值是r,指的是紧接着-后面的r(接下来的参数是与模式中的子表达式匹配的字符串),就是我们规定的索引——“(\w)”。

好了,我想之后这个函数要执行什么应该能看的很清楚了,呵呵,就到这里了,欢迎补充提议


[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

相关文章

  • javascript基本数据类型和转换

    javascript基本数据类型和转换

    本文主要介绍了javascript的基本数据类型和转换,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-03-03
  • JavaScript学习笔记之取数组中最大值和最小值

    JavaScript学习笔记之取数组中最大值和最小值

    在实际业务中有的时候要取出数组中的最大值或最小值。但在数组中并没有提供arr.max()和arr.min()这样的方法。那么是不是可以通过别的方式实现类似这样的方法呢?那么今天我们就来整理取出数组中最大值和最小值的一些方法,需要的朋友一起学习吧
    2016-03-03
  • 详解基于Bootstrap扁平化的后台框架Ace

    详解基于Bootstrap扁平化的后台框架Ace

    Bootstrap是Twitter 于2010年开发出来的前端框架,用过的同学应该知道,这款前端框架不仅界面很美观,而且兼容了很多的浏览器,大大加速了我们开发网站的速度,本文给大家介绍基于Bootstrap扁平化的后台框架Ace,需要的朋友参考下
    2015-11-11
  • javascript中一些数组常用的API总结

    javascript中一些数组常用的API总结

    Js中数组是一个重要的数据结构,它相比于字符串有更多的方法,本篇文章总结了一些数组中常用的API,我们把它们分成两类,一类是会改变原始数组,一类是不会改变原始数组,感兴趣的小伙伴可以学习一下
    2023-09-09
  • 使用layui 渲染table数据表格的实例代码

    使用layui 渲染table数据表格的实例代码

    今天小编就为大家分享一篇使用layui 渲染table数据表格的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • javascript和jquery实现设置和移除文本框默认值效果代码

    javascript和jquery实现设置和移除文本框默认值效果代码

    这篇文章主要介绍了javascript和jquery实现设置和移除文本框默认值效果代码,本文实现的是类似html5 placeholder(空白提示)一种效果,需要的朋友可以参考下
    2015-01-01
  • JavaScript实现可终止轮询请求的方法

    JavaScript实现可终止轮询请求的方法

    轮询请求就是间隔相同的时间(如5s)后不断地向服务端发起同一个接口的请求,当然不能无限次去请求,所以轮询必须要有个停止轮询的机制,今天通过本文给大家介绍JavaScript实现可终止的轮询请求,感兴趣的朋友一起看看吧
    2022-06-06
  • JS+XML 省份和城市之间的联动实现代码

    JS+XML 省份和城市之间的联动实现代码

    用JS来操作一个XML文档来实现一个简单的表单联动
    2009-10-10
  • 浅谈redux, koa, express 中间件实现对比解析

    浅谈redux, koa, express 中间件实现对比解析

    这篇文章主要介绍了浅谈redux, koa, express 中间件实现对比解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • lodash中pick和omit函数的用法介绍

    lodash中pick和omit函数的用法介绍

    这篇文章介绍了lodash中pick和omit函数的用法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06

最新评论