`
ado88
  • 浏览: 56808 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js 中replace的用法

阅读更多
replace方法的语法是:stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp)也可以是字符串(string),replaceText是替代查找到的字符串。。为了帮助大家更好的理解,下面举个简单例子说明一下
<script language="javascript">
var stringObj="终古人民共和国,终古人民";

//替换错别字“终古”为“中国”
//并返回替换后的新字符
//原字符串stringObj的值没有改变
var newstr=stringObj.replace("终古","中国"); 
alert(newstr);
</script>


    比我聪明的你,看完上面的例子之后,会发现第二个错别字“终古”并没有被替换成“中国”,我们可以执行二次replace方法把第二个错别字“终古”也替换掉,程序经过改进之后如下:
<script language="javascript">
var stringObj="终古人民共和国,终古人民";

//替换错别字“终古”为“中国”
//并返回替换后的新字符
//原字符串stringObj的值没有改变
var newstr=stringObj.replace("终古","中国"); 

newstr=newstr.replace("终古","中国"); 
alert(newstr);
</script>

    我们可以仔细的想一下,如果有N的N次方个错别字,是不是也要执行N的N次方replace方法来替换掉错别字呢??呵,不用怕,有了正则表达式之后不用一个错别字要执行一次replace方法。。程序经过改进之后的代码如下
<script language="javascript">
var reg=new RegExp("终古","g"); //创建正则RegExp对象
var stringObj="终古人民共和国,终古人民";
var newstr=stringObj.replace(reg,"中国"); 
alert(newstr);
</script>

上面讲的是replace方法最简单的应用,不知道大家有没有看懂??下面开始讲稍微复杂一点的应用。。


    大家在一些网站上搜索文章的时候,会发现这么一个现象,就是搜索的关键字会高亮改变颜色显示出来??这是怎么实现的呢??其实我们可以用正则表达式来实现,具体怎么样实现呢?简单的原理请看下面的代码
<script language="javascript">
var str="中华人民共和国,中华人民共和国";
var newstr=str.replace(/(人)/g,"<font color=red>$1</font>");
document.write(newstr);
</script>

上面的程序缺少互动性,我们再改进一下程序,实现可以自主输入要查找的字符
<script language="javascript">
var s=prompt("请输入在查找的字符","人");
var reg=new RegExp("("+s+")","g");
var str="中华人民共和国,中华人民共和国";
var newstr=str.replace(reg,"<font color=red>$1</font>");
document.write(newstr);
</script>

  可能大家都会对$1这个特殊字符表示什么意思不是很理解,其实$1表示的就是左边表达式中括号内的字符,即第一个子匹配,同理可得$2表示第二个子匹配。。什么是子匹配呢??通俗点讲,就是左边每一个括号是第一个字匹配,第二个括号是第二个子匹配。。


   当我们要把查找到的字符进行运算的时候,怎么样实现呢??在实现之前,我们先讲一下怎么样获取某一个函数的参数。。在函数Function的内部,有一个arguments集合,这个集合存储了当前函数的所有参数,通过arguments可以获取到函数的所有参数,为了大家理解,请看下面的代码
<script language="javascript">
function test(){
  alert("参数个数:"+arguments.length);
  alert("每一个参数的值:"+arguments[0]);
  alert("第二个参数的值"+arguments[1]);
  //可以用for循环读取所有的参数
}

test("aa","bb","cc"); 
</script>


看懂上面的程序之后,我们再来看下面一个有趣的程序
<script language="javascript">
var reg=new RegExp("\\d","g");
var str="abd1afa4sdf";
str.replace(reg,function(){alert(arguments.length);});
</script>

     我们惊奇的发现,匿名函数竟然被执行了二次,并且在函数里还带有三个参数,为什么会执行二次呢??这个很容易想到,因为我们写的正则表达式是匹配单个数字的,而被检测的字符串刚好也有二个数字,故匿名函数被执行了二次。。在匿名函数内部的那三个参数到底是什么内容呢??为了弄清这个问题,我们看下面的代码。
<script language="javascript">
function test(){
 for(var i=0;i<arguments.length;i++){
   alert("第"+(i+1)+"个参数的值:"+arguments[i]);
 }
}
var reg=new RegExp("\\d","g");
var str="abd1afa4sdf";
str.replace(reg,test);
</script>

     经过观察我们发现,第一个参数表示匹配到的字符,第二个参数表示匹配时的字符最小索引位置(RegExp.index),第三个参数表示被匹配的字符串(RegExp.input)。其实这些参数的个数,还会随着子匹配的变多而变多的。弄清这些问题之后,我们可以用另外的一种写法
<script language="javascript">
function test($1){
  return "<font color='red'>"+$1+"</font>"
}
var s=prompt("请输入在查找的字符","人");
var reg=new RegExp("("+s+")","g");
var str="中华人民共和国,中华人民共和国";
var newstr=str.replace(reg,test);
document.write(newstr);
</script>

看了上面的程序,原来可以对匹配到的字符为所欲为。下面简单举一个应用的例子
<script language="javascript">
var str="他今年22岁,她今年20岁,他的爸爸今年45岁,她的爸爸今年44岁,一共有4人"
function test($1){
  var gyear=(new Date()).getYear()-parseInt($1)+1;
  return $1+"("+gyear+"年出生)";
}
var reg=new RegExp("(\\d+)岁","g");
var newstr=str.replace(reg,test);
alert(str);
alert(newstr);
</script>




该文章转载自德仔工作室:http://www.dezai.cn/Article_Show.asp?ArticleID=29516
分享到:
评论

相关推荐

    javascript中replace使用方法总结

    JavaScript中的`replace()`方法是处理字符串的一个重要工具,它允许我们查找并替换字符串中的特定模式。这个方法在处理文本数据时非常有用,特别是在涉及到搜索、替换或者格式化字符串的场景中。下面我们将深入探讨`...

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

    除了直接在代码中使用replace方法以外,有时候,开发者可能会在浏览器的地址栏中直接执行JavaScript代码,以便快速验证代码片段。例如: ```javascript javascript:alert("abcabcabc".replace(/a/g, "ad")) ``` 在...

    js中replace的用法总结

    JavaScript中的`replace()`方法是字符串操作中非常常用的一个功能,用于在字符串中查找匹配的模式,并用新的子串替换匹配到的部分。本文将详细介绍`replace()`的基本用法、正则表达式的结合以及一些高级应用。 首先...

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

    JavaScript 中 String 对象的 replace 方法详解 replace 方法是 JavaScript 中 String 对象的方法,用于将字符串中的部分内容替换为新的内容。该方法的语法为:`stringObj.replace(regexp/substr, replacement)`,...

    js中的replace方法使用介绍.docx

    ### JavaScript中的`replace()`方法详解 #### 一、引言 在JavaScript中,字符串操作是一项非常重要的技能。其中,`replace()`方法是处理字符串时最常用的方法之一。它主要用于替换字符串中的某些部分,或者根据正则...

    详解JS正则replace的用法方法_.docx

    ### 详解JS正则`replace`的用法 本文旨在深入解析JavaScript中正则表达式与`replace`方法的结合使用技巧。通过一系列基础知识的复习和实战案例的演示,帮助读者掌握这一强大的文本处理工具。 #### 一、正则表达式...

    Js 回车换行处理的办法及replace方法应用

    当我们在文本框里输入文字敲下回车后,希望在提交后网页也显示是换行的效果,这时我们需要把... } 2、使用js的replace进行处理 代码如下: str=str.replaceAll(“\n”, “ ”) 这样就可以做到js回车换行的效果了!

    详解javascript replace高级用法

    在正则表达式中使用括号进行分组,然后在replace方法中通过`$i`引用对应的分组: ```javascript // 将字符串中的"javascript"和"is"替换为"javascript"、"fn.it"和"is"的组合 console.log(...

    JS的replace方法

    在`replace()`方法中,`replacement`也可以是一个函数。当它是一个函数时,每次匹配都会调用这个函数,返回的字符串将作为替换文本。函数的参数包括: 1. 匹配模式的字符串。 2. 与模式中的子表达式匹配的字符串,...

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

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

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

    replace方法是javascript涉及到正则表达式中较为复杂的一个方法,严格上说应该是string对象的方法。只不过牵扯到正则的时候比较多一些。需要我们灵活的使用。 语法: stringObj.replace(regexp/substr,replacement)...

    js中split和replace的用法实例.docx

    ### JavaScript中的`split`与`replace`方法详解 在JavaScript编程中,字符串处理是非常常见且重要的操作之一。本文将深入探讨`split`和`replace`这两个常用方法,并通过具体示例来展示它们的功能和使用技巧。 ####...

    JavaScript 中的replace方法说明

    ### JavaScript中的`replace()`方法...`replace()`方法在JavaScript字符串操作中非常实用,掌握了它的用法之后,可以更加灵活高效地处理字符串数据。通过本文的介绍,相信你已经对`replace()`方法有了更深入的理解。

    js里replace方法.docx

    JavaScript中的`replace()`方法是一个非常实用的字符串操作函数,它主要用于在字符串中查找匹配特定模式的子串,并将其替换为新的子串。`replace()`方法的语法基础是: ```javascript string.replace(regexp|substr...

    js里replace方法.pdf

    JavaScript的`replace()`方法是字符串对象的一个核心功能,用于在字符串中查找匹配正则表达式或特定字符的模式,并用新的子串替换它们。`replace()`方法的基本语法如下: ```javascript string.replace(regexp|...

    javascript中replace( )方法的使用

    最近在浏览一些阿里的前端面试题,其中有一题涉及了javascript中replace( )方法的使用,下面是原题: “说出以下函数的作用是?空白区域应该填写什么?” // define (function (window) { function fn(str) { ...

    js 页面刷新location.reload和location.replace的区别小结.docx

    在 JavaScript 中,我们经常使用 location.reload() 和 location.replace() 两个方法来刷新页面或重定向到新的 URL。但是,这两个方法之间有着明显的区别。 一、location.reload() 方法 location.reload() 方法...

    js中关于String对象的replace使用详解.docx

    ### JavaScript中String对象的replace方法使用详解 #### 一、引言 在JavaScript编程中,字符串处理是一项非常常见的任务。`String`对象提供了多种方法来帮助我们高效地处理字符串数据,其中`replace`方法尤其重要...

Global site tag (gtag.js) - Google Analytics