从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 相关文章推荐
javascript基础的动画教程,直观易懂
Jan 10 Javascript
JS获取农历日期具体实例
Nov 14 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
Jul 22 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
Feb 09 Javascript
element-ui表格列金额显示两位小数的方法
Aug 24 Javascript
vue 巧用过渡效果(小结)
Sep 22 Javascript
Vue 重置组件到初始状态的方法示例
Oct 10 Javascript
webpack优化的深入理解
Dec 10 Javascript
使用flow来规范javascript的变量类型
Sep 12 Javascript
jQuery弹框插件使用方法详解
May 26 jQuery
封装 axios+promise通用请求函数操作
Aug 11 Javascript
VsCode里的Vue模板的实现
Aug 12 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
Protoss魔法科技
2020/03/14 星际争霸
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
2012/05/05 PHP
Linux系统下php获得系统分区信息的方法
2015/03/30 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
PHP面向对象程序设计OOP继承用法入门示例
2016/12/27 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
javascript模拟select,jselect的方法实现
2012/11/08 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
2013/12/29 Javascript
利用js实现禁止复制文本信息
2015/06/03 Javascript
JavaScript获得url查询参数的方法
2015/07/02 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
JS文件中加载jquery.js的实例代码
2018/05/05 jQuery
jQuery访问json文件中数据的方法示例
2019/01/28 jQuery
vue实现弹幕功能
2019/10/25 Javascript
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
Python中typing模块与类型注解的使用方法
2019/08/05 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
Python库skimage绘制二值图像代码实例
2020/04/10 Python
python删除某个目录文件夹的方法
2020/05/26 Python
Python正则表达式高级使用方法汇总
2020/06/18 Python
西雅图的买手店:Totokaelo
2019/10/19 全球购物
岗位职责的定义
2013/11/10 职场文书
老师对学生的寄语
2014/04/09 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
小学关爱留守儿童活动方案
2014/08/25 职场文书
四风问题自查自纠工作情况报告
2014/10/28 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
物业公司管理制度
2015/08/05 职场文书
歌咏比赛口号大全
2015/12/25 职场文书
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
2021/05/31 Python