`
zhouchaofei2010
  • 浏览: 1102991 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

(转)js replace() 文本替换

    博客分类:
  • js
 
阅读更多

目前在看《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) "。

好了,我想之后这个函数要执行什么应该能看的很清楚了,呵呵,就到这里了,欢迎补充提议

 

详细出处参考:http://www.jb51.net/article/22614.htm

分享到:
评论

相关推荐

    bk replace em 批量的文本替换工具

    "bk replace em 批量的文本替换工具"是一款专为IT从业者设计的高效文本处理软件,主要用于批量替换文件中的特定文本内容。在日常工作中,尤其是网站开发者和维护者,经常遇到需要更新大量文件中相同文本的情况,例如...

    js replace() 文本替换你所不知的

    这里应用到了文本替换函数replace,他的一般语法估计大家都已经耳熟能详了,现在介绍一下当他的第二个参数为函数时的情形。 今天我在群里发这个函数的时候,有个人反映很快,说上面的那个正则写错了“/-(\w)/g”,...

    js中字符替换函数String.replace()使用技巧

    在JavaScript中,`String.prototype.replace()` 是一个非常重要的字符串方法,用于在字符串中查找匹配的模式(可以是正则表达式或子字符串)并替换它们。这个方法的使用技巧广泛,能够实现各种复杂的字符串处理需求...

    初学JS的的小例子 javascript replace高亮替换

    JavaScript Replace 高亮替换小例子 在本篇文章中,我们将学习如何使用 JavaScript 的 Replace 方法来实现关键字高亮显示。下面是一个简单的小例子,展示了如何使用 Replace 方法来达到高亮替换的效果。 Replace ...

    正则表达式替换文本_everyrk3_正则表达式_正则表达式替换文本_

    在替换文本时,我们通常使用编程语言提供的函数或方法,如Python的`re.sub()`,JavaScript的`String.prototype.replace()`,这些函数接受一个正则表达式和一个替换字符串作为参数,将所有匹配到的部分替换为指定的新...

    JS利用正则配合replace替换指定字符

    replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 语法 stringObject.replace(regexp,replacement) 参数 描述 regexp 必需。规定了要替换的模式的 RegExp 对象。请...

    批量文本替换

    2. **脚本语言**:使用Python、JavaScript、Perl等脚本语言,可以编写自定义的脚本来实现批量文本替换。这种方法灵活性高,适合处理复杂的替换逻辑。 3. **专门工具**:市面上也有一些专门用于批量文本处理的工具,...

    TXT文本替换和转换DSL文件

    而在JavaScript中,我们可以使用`replace()`函数配合正则表达式进行替换。 接下来,DSL(Domain Specific Language)是一种专为特定领域设计的语言,它具有高度定制化的语法和结构,旨在简化特定任务的编写。DSL...

    文本替换器 C#

    通过遍历文件内容,我们可以利用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"文件,掌握正确操作方法,以便...

    js中字符替换函数String.replace()使用技巧.docx

    `replace()`方法的灵活性在于它可以处理简单的文本替换,也可以处理复杂的正则表达式匹配,甚至可以根据需要自定义替换规则。在编写JavaScript代码时,熟练掌握`replace()`函数的使用技巧能大大提高代码的效率和...

    JS Replace 全部替换字符的用法小结

    在标题“JS Replace 全部替换字符的用法小结”中所指的知识点,就是如何使用replace()方法进行全局替换,即不仅仅是替换第一个匹配的字符,而是替换所有匹配的字符。 在给出的例子中,有一个变量r,它包含了一个...

    JavaScript使用replace函数替换字符串的方法

    该函数有两种使用方式,一种是使用普通文本替换,另一种则是使用正则表达式来匹配需要被替换的文本。 使用replace()函数的第一种情况是只替换第一次出现匹配项的情况。函数接受两个参数:第一个参数是被替换的文本...

    JavaScript中使用replace结合正则实现replaceAll的效果

    正常情况下,replace方法只替换字符串中的第一个匹配项,若要替换字符串中的所有匹配项,就需要用到正则表达式的全局搜索标志“g”(global)。此外,还可以结合“m”(multiLine)标志,用于指定匹配应该覆盖多行。...

    js中string之正则表达式replace方法详解.docx

    replace 方法是 JavaScript 中 String 对象的方法,用于将字符串中的部分内容替换为新的内容。该方法的语法为:`stringObj.replace(regexp/substr, replacement)`,其中第一个参数可以是字符串或正则表达式,第二个...

    React 替换字符串里面span的里的某些内容

    1.使用replace替换字符串的某些内容,使用的是正则+ replace, 2. 前提是替换字符串里面的某些标签,也可以是多个标签,这个是在react里面的,自己可以参考然后可以动态替换成其他标签,例如li,ul都是可以的 3.字符...

Global site tag (gtag.js) - Google Analytics