目前在看《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) "。
好了,我想之后这个函数要执行什么应该能看的很清楚了,呵呵,就到这里了,欢迎补充提议
相关推荐
"bk replace em 批量的文本替换工具"是一款专为IT从业者设计的高效文本处理软件,主要用于批量替换文件中的特定文本内容。在日常工作中,尤其是网站开发者和维护者,经常遇到需要更新大量文件中相同文本的情况,例如...
这里应用到了文本替换函数replace,他的一般语法估计大家都已经耳熟能详了,现在介绍一下当他的第二个参数为函数时的情形。 今天我在群里发这个函数的时候,有个人反映很快,说上面的那个正则写错了“/-(\w)/g”,...
在JavaScript中,`String.prototype.replace()` 是一个非常重要的字符串方法,用于在字符串中查找匹配的模式(可以是正则表达式或子字符串)并替换它们。这个方法的使用技巧广泛,能够实现各种复杂的字符串处理需求...
JavaScript Replace 高亮替换小例子 在本篇文章中,我们将学习如何使用 JavaScript 的 Replace 方法来实现关键字高亮显示。下面是一个简单的小例子,展示了如何使用 Replace 方法来达到高亮替换的效果。 Replace ...
在替换文本时,我们通常使用编程语言提供的函数或方法,如Python的`re.sub()`,JavaScript的`String.prototype.replace()`,这些函数接受一个正则表达式和一个替换字符串作为参数,将所有匹配到的部分替换为指定的新...
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 语法 stringObject.replace(regexp,replacement) 参数 描述 regexp 必需。规定了要替换的模式的 RegExp 对象。请...
2. **脚本语言**:使用Python、JavaScript、Perl等脚本语言,可以编写自定义的脚本来实现批量文本替换。这种方法灵活性高,适合处理复杂的替换逻辑。 3. **专门工具**:市面上也有一些专门用于批量文本处理的工具,...
而在JavaScript中,我们可以使用`replace()`函数配合正则表达式进行替换。 接下来,DSL(Domain Specific Language)是一种专为特定领域设计的语言,它具有高度定制化的语法和结构,旨在简化特定任务的编写。DSL...
通过遍历文件内容,我们可以利用String类的Replace方法来执行文本替换操作。同时,为了提高效率,可以使用StringBuilder类来存储和操作大量文本,避免频繁的内存分配。 接着,我们来看看如何处理Json文件。Json...
- **编程语言支持**:编程语言如Python、Java、JavaScript等都有内置的字符串替换方法,例如Python的`str.replace()`,Java的`String.replaceAll()`,JavaScript的`String.prototype.replace()`。 - **命令行工具*...
例如Python的`str.replace()`,Java的`String.replaceAll()`,JavaScript的`String.replace()`,它们可以结合正则表达式进行复杂的字符替换操作。 4. **文件遍历与处理**:在批量处理多文件的情况下,我们需要读取...
其界面友好,操作简单,结合正则表达式的强大功能,使得处理各种复杂的文本替换需求变得轻而易举。无论是个人开发者还是团队协作,都能从中受益。在实际使用中,用户应仔细阅读"Readme"文件,掌握正确操作方法,以便...
`replace()`方法的灵活性在于它可以处理简单的文本替换,也可以处理复杂的正则表达式匹配,甚至可以根据需要自定义替换规则。在编写JavaScript代码时,熟练掌握`replace()`函数的使用技巧能大大提高代码的效率和...
在标题“JS Replace 全部替换字符的用法小结”中所指的知识点,就是如何使用replace()方法进行全局替换,即不仅仅是替换第一个匹配的字符,而是替换所有匹配的字符。 在给出的例子中,有一个变量r,它包含了一个...
该函数有两种使用方式,一种是使用普通文本替换,另一种则是使用正则表达式来匹配需要被替换的文本。 使用replace()函数的第一种情况是只替换第一次出现匹配项的情况。函数接受两个参数:第一个参数是被替换的文本...
正常情况下,replace方法只替换字符串中的第一个匹配项,若要替换字符串中的所有匹配项,就需要用到正则表达式的全局搜索标志“g”(global)。此外,还可以结合“m”(multiLine)标志,用于指定匹配应该覆盖多行。...
replace 方法是 JavaScript 中 String 对象的方法,用于将字符串中的部分内容替换为新的内容。该方法的语法为:`stringObj.replace(regexp/substr, replacement)`,其中第一个参数可以是字符串或正则表达式,第二个...
1.使用replace替换字符串的某些内容,使用的是正则+ replace, 2. 前提是替换字符串里面的某些标签,也可以是多个标签,这个是在react里面的,自己可以参考然后可以动态替换成其他标签,例如li,ul都是可以的 3.字符...