JavaScript String.replace函数参数实例说明_基础知识

Email:longsu2010 at yeah dot net
js String的replace函数的函数签名如下:
replace(match/* 字符串OR正则表达式 */, replacement/* 字符串OR函数 */)
作用是将源自符串中的match替换为replacement并返回替换后的字符串。
如果第一参数是字符串就没什么好说的了,但是要记住此时只在源自符串替换一次match(第一次)函数就执行完成了。

所以第一参数通常是一个正则表达式,举例如下:
replace(/a/g, "b") // 将源自符串中所有的a替换为b。

第二参数可以是一个字符串,该字符串中可以包含第一参数正则表达式的分组,举例如下:
replace(/(a){2,2}/g, "$1b") // 将源自符串中所有的aa替换为ab。

如果第二参数是一个函数的话,那么函数的参数是什么呢?举例如下:

复制代码 代码如下:

"bbabc".replace(/(a)(b)/g, function(){
console.log(arguments)
});

参数将依次为:
1、整个正则表达式匹配的字符。
2、第一分组匹配的内容、第二分组匹配的内容…… 以此类推直到最后一个分组。
3、此次匹配在源自符串中的下标(位置)。
4、源自符串
所以例子的输出是

["ab", "a", "b", 2, "bbabc"]

第二参数的返回值将会被替换到源自符串中,因若js函数无返值那么调用函数会得到undefined,所以如果第二参数无返回值undefined将会被替换到源自符串中。
如果第一参数是一个字符串,同时第二参数是一个函数的话,那就当成第一参数是一个没有分组的正则表达式好了,这样就可以确定第二参数的参数了。
文中有一些表述不当之处,如“替换到源自符串中”(源自符串只是充当模板的角色,并不真正发生改变,字符串是不可改变的变量),希望不会误导大家。

时间: 2024-09-13 02:06:09

JavaScript String.replace函数参数实例说明_基础知识的相关文章

JavaScript中Function()函数的使用教程_基础知识

 function语句不是定义一个新的函数,并且可以定义你的函数动态使用Function()构造使用操作符的唯一途径. 注:这是面向对象编程的术语.第一次可能会感觉不太习惯,这里是没有问题的.语法 下面是使用new运算符创建一个使用功能Function()构造的语法. <script type="text/javascript"> <!-- var variablename = new Function(Arg1, Arg2..., "Function Bo

JavaScript中指定函数名称的相关方法_基础知识

 JavaScript1.2引入了函数文本是定义函数一种以上的新方法的概念. 函数文本是定义一个无名函数的表达式.语法 字面值函数的语法很类似的函数声明,不同之处在于它被用作表达,它不是作为一个声明,函数名是必需的. <script type="text/javascript"> <!-- var variablename = function(Argument List){ Function Body }; //--> </script> 在语法上

Javascript中的默认参数详解_基础知识

一些语言--像Ruby,CoffeeScript及即将到来的javascript版本--在定义一个函数的时候,可以声明默认参数,像下面这样: 复制代码 代码如下: function myFunc(param1, param2 = "second string") {     console.log(param1, param2); } // Outputs: "first string" and "second string" myFunc(&q

ParseInt函数参数设置介绍_基础知识

我们经常用ParseInt函数转换字符串为int数值,ParseInt函数有两个参数可以设置,其中第二个参数可以缺省. ParseInt("字符串",使用的进制) var num1=ParseInt("10",2)//2 var num1=ParseInt("10",8)//8 var num1=ParseInt("10",10)//10 var num1=ParseInt("10",16)//16 进制参

Javascript中的转义用法实例代码_基础知识

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

javascript String.replace函数

 代码如下 复制代码 stringObject.replace(regexp/substr,replacement) replacement 可以是字符串,也可以是函数.如果它是字符串,那么每个匹配都将由字符串替换.ECMAScript v3 规定,replace() 方法的参数 replacement 可以是函数而不是字符串.在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用.该函数的第一个参数是匹配模式的字符串.接下来的参数是与模式中的子表达式匹配的字符串,可以有 0 个或

JavaScript中的replace()方法使用详解_基础知识

 该方法找到一个正则表达式的字符串之间的匹配,并取代了匹配的子带的新的子串. 替换字符串可以包含以下特殊替换模式:  语法 string.replace(regexp/substr, newSubStr/function[, flags]); 下面是参数的详细信息:     regexp : 一个RegExp对象.匹配被替换参数的返回#2.     substr : 一个字符串,由newSubStr 来替换     newSubStr : 它取代从参数中收到的子字符串 #1.     funct

JavaScript全局函数使用简单说明_基础知识

1.decodeURI() 参数:string 功能描述:对 encodeURI() 函数编码过的 URI 进行解码. 实例: 可把 http://www.jb51.net/My%20first/ 解码为 http://www.jb51.net/My first/ 2.decodeURIComponent() 参数:string 功能描述:函数可对 encodeURIComponent() 函数编码的 URI 进行解码. 3.encodeURI() 参数:string 功能描述:可把字符串作为

JavaScript高级程序设计(第3版)学习笔记7 js函数(上)_基础知识

变量类型 在说函数之前,先来说说变量类型. 1.变量:变量在本质上就是命名的内存空间. 2.变量的数据类型:就是指变量可以存储的值的数据类型,比如Number类型.Boolean类型.Object类型等,在ECMAScript中,变量的数据类型是动态的,可以在运行时改变变量的数据类型. 3.变量类型:是指变量本身的类型,在ECMAScript中,变量类型就只有两种:值类型和引用类型.当变量的数据类型是简单数据类型时,变量类型就是值类型,当变量的数据类型是对象类型时,变量类型就是引用类型.在不引起