目前在看《Secrets of the JavaScript Ninja.pdf》p166,listing7.9 代码不解,网得一博文解之,故转之。不解代码如下
<script type="text/javascript"> assert( "border-bottom-width".replace( /-(\w)/g, function(all,letter) { return letter.toUpperCase(); }) == "borderBottomWidth", "Camel cased a hyphenated string."); </script>
转文:
代码如下:
//把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) "。
好了,我想之后这个函数要执行什么应该能看的很清楚了,呵呵,就到这里了,欢迎补充提议
相关推荐
这里应用到了文本替换函数replace,他的一般语法估计大家都已经耳熟能详了,现在介绍一下当他的第二个参数为函数时的情形。 今天我在群里发这个函数的时候,有个人反映很快,说上面的那个正则写错了“/-(\w)/g”,...
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 语法 stringObject.replace(regexp,replacement) 参数 描述 regexp 必需。规定了要替换的模式的 RegExp 对象。请...
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 语法 stringObject.replace(regexp/substr,replacement)参数 描述 regexp/substr 必需。规定子字符串或要替换的模式的...
1.使用replace替换字符串的某些内容,使用的是正则+ replace, 2. 前提是替换字符串里面的某些标签,也可以是多个标签,这个是在react里面的,自己可以参考然后可以动态替换成其他标签,例如li,ul都是可以的 3.字符...
1、javascript 正则对象替换创建 和用法: /pattern/flags 先简单案例学习认识下replace能干什么 正则表达式构造函数: new RegExp(“pattern”[,”flags”]); 正则表达式替换变量函数:stringObj.replace(RegExp,...
这个插件在 CKEditor 5 中实现了查找和替换文本。 特征: 向前和向后搜索(带有视觉和文本进度指示) 替换一个(也向前和向后)或所有出现 可访问(键盘操作) 在编辑器外使用(通过执行 findReplace 命令) ...
replace方法是javascript涉及到正则表达式中较为复杂的一个方法,严格上说应该是string对象的方法。只不过牵扯到正则的时候比较多一些。需要我们灵活的使用。 语法: stringObj.replace(regexp/substr,replacement)...
Sketch查找和替换Sketch的文本插件 查找和替换文本以供草图使用,您可以搜索整个活动文档并替换画布元素内的文本(包括符号替代)。 您也可以选择仅对图层名称执行重命名。 根据您当前的图层列表选择,搜索范围可以...
替换给定文件中的文本。 npm install replace-in 这个怎么运作? 它创建一个读取流以分块的形式从目标文件中读取。 替换每个请求并使用写入流写入结果。 更换完成后,将返回最终报告。 原料药 替换(选项) ...
在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数 是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一...
基于grunt的文本内容替换组件。 入门 该插件需要Grunt。 如果您以前从未使用过 ,请务必查看《指南》,因为它说明了如何创建以及安装和使用Grunt插件。 熟悉该过程后,可以使用以下命令安装此插件: npm install ...
PhotoshopTextReplacer 一个简单的 js 脚本,用于替换 psd 模板中的文本图层,并将其导出为 PNG。 模板必须具有命名为:name0、name1、.... 和 roomNumber 的层。 (我用这个脚本来创建房间标志......) 请享用 :-...
replace()函数具有替换功能,它可以具有两个参数,第一个参数可以是要被替换的字符串或者匹配要被替换字符串的正则表达式,第二个参数可以是替换文本或者一个函数,下面看一下关于replace()函数的几个代码实例。...
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 关于语法 stringObject.replace(regexp/substr,replacement) 关于参数 参数 描述 regexp/substr 必需。规定...
通常用于文本输入框的一种功能是替换指定的字符。JavaScript具有一个非常有用的方法replace(),可以用它利用备选字符集途欢指定的字符。 replace()方法允许指定希望替换的字符或字符集,方式是利用字符串或者正则...
吞咽替换异步 $ npm install gulp-replace-async --save-dev 用法 var replace = require ( 'gulp-replace-async' ) ; gulp . task ( 'replace' , function ( ) { return gulp . src ( 'index.html' ) . pipe ( ...
gulp插件可以替换文本。 #usage var replace = require(“ gulp-pf-replace”); 定义替换功能 function ypReplace(data){ return data.replace(/帮宝适首发/,"123456") } 定义任务 gulp.task("replace",...
定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 语法 stringObject.replace(regexp/substr,replacement) 参数 描述 regexp/substr 必需。规定子字符串...
一个简单的,零依赖,递归的单行文本替换器,用于NodeJS> = 8。 用于在项目中跨多种文件类型更新特定的单行文本。 仅查找文件中的第一条匹配行,然后仅在该行上运行文本替换。 同步处理。 您可能正在读这篇文章,...