`
tsailer
  • 浏览: 53071 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

JS的replace方法

    博客分类:
  • JS
 
阅读更多
from
http://www.cnblogs.com/mxw09/archive/2010/08/12/1797905.html


replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数 是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。

下文展示了几种javascript正则表示式的repalce方式,有些方式我们很少在别的地方看到,如第二种和第三方中方法。
//下面的例子用来获取url的两个参数,并返回urlRewrite之前的真实Url
var reg=new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gmi");
var url="http://www.qidian.com/BookReader/1017141,20361055.aspx";


//方式一,最简单常用的方式
var rep=url.replace(reg,"$1ShowBook.aspx?bookId=$2&chapterId=$3");
alert(rep);


//方式二 ,采用固定参数的回调函数
var rep2=url.replace(reg,function(m,p1,p2,p3){return p1+"ShowBook.aspx?bookId="+p3+"&chapterId="+p3});
alert(rep2);


//方式三,采用非固定参数的回调函数
var rep3=url.replace(reg,function(){var args=arguments; return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3];});
alert(rep3);



//方法四
//方式四和方法三很类似, 除了返回替换后的字符串外,还可以单独获取参数
var bookId;
var chapterId;
function capText()
{
    var args=arguments;
    bookId=args[2];
    chapterId=args[3];
    return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3];
}

var rep4=url.replace(reg,capText);
alert(rep4);
alert(bookId);
alert(chapterId);



//除了使用replace方法获取正则表示式的分组外,还可以使用test ,exec方法获取分组,只是手法有所不同而已
var reg2=new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gmi");
var m=reg2.exec("http://www.qidian.com/BookReader/1017141,20361055.aspx");
var s="";

//获取所有的分组
for (i = 0; i < m.length; i++) {
      s = s + m[i] + "\n";     
      }
alert(s);

bookId=m[2];
chapterId=m[3];
alert(bookId);
alert(chapterId);



//使用test方法获取分组
var reg3=new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gmi");
reg3.test("http://www.qidian.com/BookReader/1017141,20361055.aspx");
//获取三个分组
alert(RegExp.$1);
alert(RegExp.$2);
alert(RegExp.$3);


exercise
http://hi.baidu.com/%B7%E7%D4%C6%D0%F9%BA%A3/blog/item/6a275c119f8d3a0f5aaf539e.html

<script language="javascript">
var strM = "javascript is a good script language";
alert(strM.replace(/(javascript)\s*(is)/g,"$1 $2 fun. it $2"));

</script>

  我这儿举的例子都是很简单的应用,replace()在此点上与您使用正则表达式的能力成正比。您正则表达式越强,呵呵,那您就会越疯狂的爱上它。

  当然,我这儿推荐replace()的原因并不因为它能与正则表达式合作,而在于它还能与函数进行合作,发挥出强大的功能。

  先看看简单例子:将所有单词首字母换成大写。

<script language="javascript">
var strM = "javascript is a good script language";
function change(word)
{
 return word.indexOf(0).toUpperCase()+word.substring(1);
}
alert(strM.replace(/\b\w+\b/g,change));

</script>

  由上可知,当正则表达式有"g"标志时,代表将处理整个字符串,即函数change的变换将应用于所有匹配的对象。而该函数有三个或更多参数,具体个数视正则表达式而定。

  有了函数与正则表达式的配合,replace()处理字符串的功能空前强大起来了!

  最后还举个例子,将字符串所有单词倒序,用replace()处理是如此简单。

<script language="javascript">
var strM = "javascript is a good script language";
function change(word)
{
 var result = word.match(/(\w)/g);
if ( result )
{
 var str = "";
  for ( var i=result.length-1; i>=0; i-- )
 {
   str += result;
 }
 return str;
}
else
{
  return "null";
}
}
alert(strM.replace(/\b(\w)+\b/g,change));

</script>
分享到:
评论

相关推荐

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

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

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

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

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

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

    js里replace方法.pdf

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

    js里replace方法.docx

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

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

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

    javascript replace方法与正则表达式

    `JavaScript`中的`replace`方法是用来在字符串中替换匹配到的特定内容,它与正则表达式配合使用,能够实现灵活的文本处理。`replace`方法的基本语法是`stringObj.replace(rgExp, replaceText)`,其中`stringObj`是一...

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

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

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

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

    使用JS中的Replace()方法遇到的问题小结

    在使用JavaScript(JS)编程时,Replace()方法是一个常用的字符串替换函数。这个方法在处理字符串时,经常会被使用到,尤其是涉及自动化脚本、数据处理等方面。本文针对使用Replace()方法时可能遇到的几个问题进行了...

    javascript正则表达式中的replace方法详解.docx

    javascript正则表达式中的replace方法详解.docx

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

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

    JS的replace方法详细介绍

    replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数 是与模式中的子表达式...

    JavaScript 中的replace方法说明

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

    JS中的Replace方法使用经验分享

    在JavaScript编程中,Replace方法是处理字符串替换问题的常用方法。本文主要分享了在使用Replace方法时,应该注意的一个关键知识点,即如何正确地替换字符串中的所有匹配项,而不仅仅是第一个匹配项。 首先,需要...

    javascript的replace方法结合正则使用实例总结

    以下将详细介绍replace方法结合正则表达式的使用技巧和实例。 1. 替换字符:replace()方法可以将字符串中的特定字符或字符串替换成另一个字符或字符串。例如,使用replace()方法可以将一段文本中的“终古”替换成...

    详解javascript replace高级用法

    在前端开发中,JavaScript的replace方法是一个非常实用且强大的字符串处理工具。它不仅能够进行简单的字符串替换,还支持正则表达式匹配和多种高级替换用法,极大地提高了字符串处理的灵活性和效率。本文将详细介绍...

Global site tag (gtag.js) - Google Analytics