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


Posted in Javascript onSeptember 13, 2011

功能
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");
Javascript 相关文章推荐
图片img的src不变让浏览器重新加载实现方法
Mar 29 Javascript
from表单多个按钮提交用onclick跳转不同action
Apr 24 Javascript
详谈javascript异步编程
Feb 21 Javascript
详解Angular.js的$q.defer()服务异步处理
Nov 06 Javascript
Bootstrap面板使用方法
Jan 16 Javascript
Vue.js中的图片引用路径的方式
Jul 28 Javascript
详解基于vue-router的动态权限控制实现方案
Sep 28 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
Apr 24 Javascript
vue element动态渲染、移除表单并添加验证的实现
Jan 16 Javascript
了解JavaScript中的选择器
May 24 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
Mar 05 Javascript
js闭包的9个使用场景
Dec 29 Javascript
各情景下元素宽高的获取实现代码
Sep 13 #Javascript
JS字符串函数扩展代码
Sep 13 #Javascript
Javascript学习笔记 delete运算符
Sep 13 #Javascript
Webkit的跨域安全问题说明
Sep 13 #Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
Sep 13 #Javascript
容易被忽略的JS脚本特性
Sep 13 #Javascript
Javascript学习笔记-详解in运算符
Sep 13 #Javascript
You might like
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
PHP设计模式之责任链模式的深入解析
2013/06/13 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
php如何执行非缓冲查询API
2016/07/22 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
jquery实现点击页面计算点击次数
2015/01/23 Javascript
Bootstrap前端开发案例一
2016/06/17 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
Python编码时应该注意的几个情况
2013/03/04 Python
python多重继承实例
2014/10/11 Python
python获取外网IP并发邮件的实现方法
2017/10/01 Python
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
python对于requests的封装方法详解
2019/01/03 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
python requests使用socks5的例子
2019/07/25 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
七匹狼男装广告词
2014/03/21 职场文书
数学系毕业生求职信
2014/05/29 职场文书
2014年移动公司工作总结
2014/12/08 职场文书
敬老院志愿者活动总结
2015/05/06 职场文书
投诉书格式范本
2015/07/02 职场文书
培训后的感想
2015/08/07 职场文书
血轮眼轮回眼特效 html+css
2021/03/31 HTML / CSS
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python
Win10本地连接不见了怎么恢复? win10系统电脑本地连接不见了解决方法
2023/01/09 数码科技