测试了下replace函数的输入参数,
之前一直不了解,如果replace第二个参数为function,那么replace函数提供给function的输入参数是什么呢?
例如:
String.replace(regexp,function(?,?){})
猜想是:
function的输入参数跟exec函数返回结果想似。
先看测试代码:
<!DOCTYPE HTML> <html> <head> <title>replace.html</title> <meta http-equiv="content-type" content="text/html; charset=gb2312"> </head> <body> <script type="text/javascript"> var url = "http://www.baidu.com/abc.jsp?method=method&name=abc&age=12"; //第一参数为字符串 console.group("字符串"); var newUrl1 = url.replace("www.baidu.com",function(){ console.log("replace输入参数:%o",arguments); var val = /www.baidu.com/.exec(url); console.log("exec输出参数:%o",val); console.assert(arguments[0] === val[0]); console.assert(arguments[1] === val["index"]); console.assert(arguments[2] === val["input"]); return "123"; }); console.log("replace返回字符串:"+newUrl1); console.groupEnd("字符串"); //第一参数为正则表达式 console.group("正则表达式"); var regexp_global = /[?&](\w+)=([^&]*)/g; var count = 0; var newUrl2 = url.replace(regexp_global,function(){ console.log("第"+(count++)+"次运行"); console.log("replace输入参数:%o",arguments); var val = regexp_global.exec(url); console.log("exec输出参数:%o",val); console.assert(arguments[0] === val[0]); console.assert(arguments[1] === val[1]); console.assert(arguments[2] === val[2]); console.assert(arguments[3] === val["index"]); console.assert(arguments[4] === val["input"]); return count; }); console.log("replace返回字符串:"+newUrl2); console.groupEnd("正则表达式"); </script> </body> </html>
firefox下执行结果:
测试代码的断言都通过:
1、显然replace第二个参数function的输入参数跟第一参数.exec(url)返回的信息一致。
2、假如第一个参数不是正则表达式,function的输入参数依然为/第一参数/.exec(url)返回结果。
相关推荐
- `replace`方法使用该正则表达式匹配输入字符串`s`中的模式,并将每个匹配项替换为相应的参数值。 2. **函数参数解释**: - `word`:匹配的文本,即`%n`。 - `index`:在正则表达式中捕获的组的索引。在这个...
JavaScript 中的表单验证函数提供了多种方法来验证表单输入,包括: * `checkValidity()`: 检查表单是否有效。 * `reportValidity()`: 报告表单的有效性。 * `setCustomValidity()`: 设置表单的自定义有效性。 ...
在JavaScript中,函数是代码的可重用部分,它们可以接受输入数据,即参数,来改变其行为。理解JavaScript函数的参数列表是编写高效、可维护代码的关键。 标题“JavaScript的所有参数列表”可能是指在JavaScript标准...
根据提供的文件信息,我们可以总结出以下几个关键的JavaScript公共函数及其用途: ### 1. `function IfShow(ShowMsg)` **功能描述:** 此函数用于判断传入的消息字符串`ShowMsg`是否为空。如果为空,则返回`false`...
### JS网址添加参数重复替换功能解析 在前端开发过程中,经常需要对URL进行操作,比如添加或修改查询字符串参数。这段代码实现了一个简单的JavaScript函数`addpara`,用于向当前页面URL添加或替换指定参数。 #### ...
根据给定的文件信息,我们可以总结出以下JavaScript函数库中的相关知识点: ### 一、字符串处理函数 #### 1. `trim()`, `lTrim()`, 和 `rTrim()` 函数 - **`trim()`**: 移除字符串两端的所有空白字符(包括空格、...
在SQL Server中,JSON(JavaScript Object Notation)已经成为一种重要的数据交换格式,特别是在与Web服务交互和处理NoSQL数据时。从SQL Server 2016开始,微软引入了对JSON的内置支持,使得数据库系统能够更加灵活...
- **定义**:此函数接收一个字符串参数,并返回一个新的字符串,该字符串已移除所有左侧空白字符(包括空格、制表符等)。 - **代码实现**: ```javascript function LTrim(str) { return str.replace(/^\s*/, ...
### Js字符串操作函数大全 在JavaScript编程中,字符串操作是非常常见的需求之一。本文将详细介绍一个JavaScript字符串操作集合,包括但不限于小数点处理、空格处理、数据类型校验、过滤特殊字符以及URL参数获取等...
- `getRequestParameter(paramName)`:该函数接受一个参数名作为输入。 2. **解析URL**: - 使用`location.href`获取当前页面的完整URL。 - 通过`substring`和`indexOf`组合使用,获取从`?`符号之后的所有内容...
- 当传递给`replace()`的第二个参数是一个函数时,这个函数会被调用每次正则匹配成功,返回值将作为替换的新子串。 - 示例:将所有单词首字母转换为大写,可以通过以下方式实现: ```javascript function ...
### JS脚本去空格函数知识点详解 在Web开发中,JavaScript作为一种强大的客户端脚本语言,经常被用来处理各种字符串操作。其中,去除字符串中的空格是一个常见的需求,尤其是在处理表单输入、文本分析等场景时。...
JavaScript的replace方法是用于替换字符串中匹配特定模式的子串的函数。该方法可以在字符串中查找指定的值或正则表达式,并将找到的匹配项替换为新指定的文本。replace方法不仅可以进行简单的文本替换,还可以执行...
"js-validator"这个文件名可能与验证相关的JavaScript函数或库有关,例如表单验证或者数据校验,这也可能是博文中探讨的一个主题。在Web应用中,数据验证是必不可少的一环,确保用户输入的数据符合预设规则,防止...
### 只能输入小数和数字的JS:深入解析与应用 #### 一、引言 在现代Web开发中,确保用户输入数据的有效性和正确性是至关重要的一步。特别是在涉及金额或其他数值输入的情况下,比如商务网站上的商品价格、折扣率等...
### 详解JS正则`replace`的用法 本文旨在深入解析JavaScript中正则表达式与`replace`方法的结合使用技巧。通过一系列基础知识的复习和实战案例的演示,帮助读者掌握这一强大的文本处理工具。 #### 一、正则表达式...
JavaScript函数大全是对JavaScript编程语言中各种函数的详尽概述,涵盖了从基础到高级的各种功能。JavaScript,作为一种广泛应用于网页和互联网应用的脚本语言,它的函数是实现动态交互和复杂逻辑的核心工具。以下是...
### JS验证大全:JavaScript中的输入控制与数据验证 在网页开发中,JavaScript是实现前端交互的重要工具之一,尤其是在用户输入的验证方面。本文将详细解析一个包含多种输入限制与数据验证脚本的集合,旨在帮助...
结合以上四个步骤,我们便能构建一个完整的预处理函数,用于清理输入的字符串,使其适合作为`eval()`的参数。但请注意,`eval()`的使用应谨慎,因为它允许执行任意代码,可能导致安全问题。在大多数情况下,寻找替代...