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

 更新时间:2011年09月13日 22:54:02   作者:  
camelCase函数的功能就是将形如background-color转化为驼峰表示法:backgroundColor。
功能
camelCase函数的功能就是将形如background-color转化为驼峰表示法:backgroundColor。
此函数在jQuery的data函数,以及涉及到css的诸多函数中都有用到。

jQuery的实现
复制代码 代码如下:

//正则匹配
rdashAlpha = /-([a-z])/ig,
// camelCase替换字符串时的回调函数
fcamelCase = function( all, letter ) {
return letter.toUpperCase();
},
...
camelCase: function( string ) {
return string.replace( rdashAlpha, fcamelCase );
},

这个功能本身并不难,就是调用了String对象的replace方法。但是本着学习的态度还是研究了一下replace方法。
资料参考:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace

String.replace()语法
str.replace(regexp|substr, newSubStr|function[, Non-standard flags]);

String.replace()参数说明
regexp:一个用于搜索正则表达式
substr:一个用于搜素字符串
newSubStr:一个用于替换的新字符串
function:一个回调函数,函数的返回值用于替换原匹配的字符串
flags:非标准,类似于RegExp的i、g、m(忽略大小写、是否全局搜索、匹配多行)

指定字符串作为替换对象
在用于替换的字符串中你可以使用以下模式:
$$ => 插入一个$
$& => 插入匹配的子串
$` =>插入匹配的子串之前的所有字符
$' => 插入匹配的子串之后的所有字符
$n / $nn => 此模式只有在replace()方法的第一个参数为RegExp,且正则表达式内包含括号时有效。

指定函数作为替换对象
典型的replacement函数:function(str,p1,p2,offset,s){}
参数说明:
str:匹配的字符串(类似$&)
p1,p2,...:此模式只有在replace()方法的第一个参数为RegExp,且正则表达式内包含括号时有效。(类似$n / $nn)
offset:匹配子串的偏移量
s:用于搜索的字符串

获取CSS属性的驼峰表示
复制代码 代码如下:

String.prototype.camelCase=function(){
//all为匹配的子串,而letter则为p1,因为[a-z]加入了括号
return this.replace(/-([a-z])/ig,function( all, letter,offset,s ) {
return letter.toUpperCase();
});
};
var cssText = 'h2\n{\n border-bottom:1px solid #eee;\n background-color:#bbb;\n}';
var newstr = cssText.camelCase();

交换匹配字符串的位置
复制代码 代码如下:

var re = /(\w+)\s(\w+)/;
var str = "John Smith";
var newstr = str.replace(re, "$2, $1");

相关文章

  • 实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)

    实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)

    实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等),经验积累,感兴趣的朋友可以了解下,一定会对你有帮助的
    2013-01-01
  • javascript实现将数字转成千分位的方法小结【5种方式】

    javascript实现将数字转成千分位的方法小结【5种方式】

    这篇文章主要介绍了javascript实现将数字转成千分位的方法,结合实例形式分析了5种常用的数字转换的常用方法,涉及字符串与正则操作的相关技巧,需要的朋友可以参考下
    2016-12-12
  • JavaScript中获取元素索引的函数

    JavaScript中获取元素索引的函数

    相信使用过jQuery的朋友都知道index()方法, 她可以很方便的帮你找到当前元素在元素集合中索引位置. 那么, 原生JavaScript中如何获取呢?
    2010-09-09
  • 五句话帮你轻松搞定js原型链

    五句话帮你轻松搞定js原型链

    这篇文章主要给大家介绍了关于js原型链的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 图片onload事件触发问题解决方法

    图片onload事件触发问题解决方法

    当页面上存在一个图片元素时如:<img src='xxxx' alt="" />,页面加载中ie7、8跟chrome下图片的onload事件非常奇怪,有后完全不触发,有时候触发后进行改变某些元素的操作,操作结果无效。
    2011-07-07
  • uniapp如何实现tabBar之间传参

    uniapp如何实现tabBar之间传参

    这篇文章主要给大家介绍了关于uniapp如何实现tabBar之间传参的相关资料,文中通过代码示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-08-08
  • js 随机数代码大全

    js 随机数代码大全

    很多情况下,需要用到随机数,脚本之家特为大家整理了一些具体的使用与说明。
    2010-08-08
  • 关于JS中的箭头函数

    关于JS中的箭头函数

    这篇文章主要介绍了关于JS中的箭头函数,ES6中允许使用=>来定义函数。箭头函数相当于匿名函数,并简化了函数定义,箭头函数在语法上比普通函数简洁多。箭头函数就是采用箭头=>来定义函数,省去关键字function,需要的朋友可以参考下
    2023-05-05
  • Avalonjs双向数据绑定与监听的实例代码

    Avalonjs双向数据绑定与监听的实例代码

    本文通过实例代码给大家介绍了Avalonjs双向数据绑定与监听的实现代码,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-06-06
  • javascript前端和后台进行数据交互方法示例

    javascript前端和后台进行数据交互方法示例

    这篇文章主要介绍了javascript前端和后台进行数据交互方法示例,文章通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08

最新评论