多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
| JScript  | [语言参考](#) | |-----|-----| # replace 方法 返回根据正则表达式进行文字替换后的字符串的复制。 `stringObj.**replace(**rgExp, replaceText**)**` #### 参数 stringObj 必选项。要执行该替换的 **String** 对象或字符串文字。该字符串不会被 **replace** 方法修改。 rgExp 必选项。为包含正则表达式模式或可用标志的**正则表达式**对象。也可以是 **String** 对象或文字。如果 *rgExp *不是**正则表达式**对象,它将被转换为字符串,并进行精确的查找;不要尝试将字符串转化为正则表达式。 replaceText 必选项。是一个**String** 对象或字符串文字,对于*stringObj* 中每个匹配 *rgExp* 中的位置都用该对象所包含的文字加以替换。在 Jscript 5.5 或更新版本中,*replaceText* 参数也可以是返回替换文本的函数。 #### 说明 **replace** 方法的结果是一个完成了指定替换的 *stringObj* 对象的复制。 下面任意的匹配变量都能用来识别最新的匹配以及找出匹配的字符串。在需要动态决定替换字符串的文本替换中可以使用匹配变量。 | 字符 | 含义 | |-----|-----| | **$$** | **$** (JScript 5.5 或更新版本) | | **$&** | 指定与整个模式匹配的 *stringObj* 的部分。 (JScript 5.5 或更新版本) | | **$`** | 指定由 **$&** 描述的匹配之前的 *stringObj* 部分。 (JScript 5.5 或更新版本) | | **$'** | 指定由 **$&** 描述的匹配之后的 *stringObj* 部分。 (JScript 5.5 或更新版本) | | **$*n*** | 捕获的第 *n* 个子匹配,此处 *n* 为从1到9的十进制一位数。 (JScript 5.5 或更新版本) | | **$*nn*** | 捕获的第 *nn* 个子匹配,此处 *nn* 为从01到99的十进制两位数。 (JScript 5.5 或更新版本) | 如果 *replaceText* 为函数,对于每一个匹配的子字符串,调用该函数时带有下面的 m+3 个参数,此处 m 是在 *rgExp* 中捕获的左括弧的个数。第一个参数是匹配的子字符串。接下来的 *m* 个参数是查找中捕获的全部结果。第 *m*+2 个参数是在 *stringObj* 中匹配出现的偏移量,而第 *m*+3 个参数为 *stringObj*。结果为将每一匹配的子字符串替换为函数调用的相应返回值的字符串值。 **Replace **方法更新全局 **RegExp** 对象的属性。 #### 示例 下面的示例演示了 **replace** 方法将第一次出现的单词 "The" 替换为单词 "A" 的用法。 ~~~ function ReplaceDemo(){    var r, re; // ~~~ 声明变量。 ~~~ var ss = "The man hit the ball with the bat.\n"; ~~~ ~~~ ss += "while the fielder caught the ball with the glove."; ~~~ ~~~    re = /The/g; // ~~~ 创建正则表达式模式。     ~~~ r = ss.replace(re, "A"); // ~~~ 用 ~~~ "A" ~~~ 替换 ~~~ "The" ~~~ 。     ~~~ return(r); // ~~~ 返回替换后的字符串。 } 另外, **replace** 方法也可以替换模式中的子表达式。 下面的范例演示了交换字符串中的每一对单词: ~~~ function ReplaceDemo(){    var r, re; // ~~~ 声明变量。     ~~~ var ss = "The rain in Spain falls mainly in the plain."; ~~~ ~~~    re = /(\S+)(\s+)(\S+)/g; // ~~~ 创建正则表达式模式。     ~~~ r = ss.replace(re, "$3$2$1");   // ~~~ 交换每一对单词。     ~~~ return(r); // ~~~ 返回结果字符串。 } 下面的示例(在 JScript 5.5 及更新版本中执行)执行的是从华氏到摄氏的转换,它演示了使用函数作为 *replaceText*。要想知道该函数是如何工作的,传递一个包含数值的字符串,数值后要紧跟 "F" (例如 "Water boils at 212")。 ~~~ function f2c(s) { var test = /(\d+(\.\d*)?)F\b/g; // ~~~ 初始化模式。 ~~~ return(s.replace ~~~ ~~~ (test, ~~~ ~~~ function($0,$1,$2) { ~~~ ~~~ return((($1-32) * 5/9) + "C"); ~~~ ~~~ } ~~~ ~~~ ) ~~~ ~~~ ); ~~~ ~~~ } ~~~ ~~~ document.write(f2c("Water freezes at 32F and boils at 212F.")); ~~~ #### 要求 [版本 1](#) #### 请参阅 [exec 方法](#) | [match 方法](#) | [RegExp 对象](#) | [search 方法](#) | [String 对象的方法](#) | [test 方法](#) 应用于: [String 对象](#) [© 2000 Microsoft Corporation 版权所有。保留所有权利。使用规定。](#)