replace方法

来源:互联网 发布:柯林斯词典下载mac 编辑:程序博客网 时间:2024/06/05 06:14

JavaScript replace() 方法

JavaScript String 对象参考手册

定义和用法

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

语法

stringObject.replace(regexp,replacement)
参数描述regexp必需。规定了要替换的模式的 RegExp 对象。请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。replacement必需。一个字符串值。规定了替换文本或生成替换文本的函数。

返回值

一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。

说明

字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。

replacement 可以是字符串,也可以是函数。如果它是字符串,那么没有匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换。

字符替换文本$1、$2、...、$99与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。$&与 regexp 相匹配的子串。$`位于匹配子串左侧的文本。$'位于匹配子串右侧的文本。$$直接量符号。
看这个例子
这里是把  “”换成  ‘’
其实是把符合这个正则表达式的字符串 换成  字表达式 :()----正则中的括号的表达式

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

 这句话的解释

看个例子

var name =a123145

                uw=name.replace(/(12)(31)/g, function(word,d,i,o)

        {
                alert(d);
                 alert(i);
               alert(o);
          }

这里的参数都是什么呢?

word是  第一个子表达式的内容

第二个参数是  第二个子式。。。。

之后的是  出现的第一个符合正则的位置  这里是 o=1

如果还有参数的话   就是在整个 字符串的内容

看个例子

 

String.prototype.dbc2sbc = function ()  

{ return this.replace(/[/uff01-/uff5e]/g,  
         function(a){   //这里 a是指的字符串本身
            
return String.fromCharCode(a.charCodeAt(0)-65248);  
         }).replace(
//u3000/g," ");  
}  

 

下面的示例(在 JScript 5.5 及更新版本中执行)执行的是从华氏到摄氏的转换,它演示了使用函数作为 replaceText。要想知道该函数是如何工作的,传递一个包含数值的字符串,数值后要紧跟 "F" (例如 "Water boils at 212F")。

function f2c(s)

{
  var test = /(/d+(/./d*)?)F/b/g;    // 初始化模式。---在小括号里的为正则表达式 --所以要对.转义
  return(s.replace
    (test,
      function($0,$1,$2) { //这里的$1是只得第一个括号的参数值......
        return((($1-32) * 5/9) + "C");
      }
    )
  );
}
document.write(f2c("Water freezes at 32F and boils at 212F."));

原创粉丝点击