`
yxc_gdut
  • 浏览: 97598 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

js replace函数输入参数

阅读更多

 

    测试了下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)返回结果。

 

 

  • 大小: 60 KB
分享到:
评论
1 楼 hucc 2013-12-26  
  

相关推荐

    javascript笔记 String类replace函数的一些事.docx

    - `replace`方法使用该正则表达式匹配输入字符串`s`中的模式,并将每个匹配项替换为相应的参数值。 2. **函数参数解释**: - `word`:匹配的文本,即`%n`。 - `index`:在正则表达式中捕获的组的索引。在这个...

    javascript 各种函数用法

    JavaScript 中的表单验证函数提供了多种方法来验证表单输入,包括: * `checkValidity()`: 检查表单是否有效。 * `reportValidity()`: 报告表单的有效性。 * `setCustomValidity()`: 设置表单的自定义有效性。 ...

    Javascript的所有参数列表

    在JavaScript中,函数是代码的可重用部分,它们可以接受输入数据,即参数,来改变其行为。理解JavaScript函数的参数列表是编写高效、可维护代码的关键。 标题“JavaScript的所有参数列表”可能是指在JavaScript标准...

    JS公共函数JS公共函数

    根据提供的文件信息,我们可以总结出以下几个关键的JavaScript公共函数及其用途: ### 1. `function IfShow(ShowMsg)` **功能描述:** 此函数用于判断传入的消息字符串`ShowMsg`是否为空。如果为空,则返回`false`...

    JS网址添加参数 重复替换功能

    ### JS网址添加参数重复替换功能解析 在前端开发过程中,经常需要对URL进行操作,比如添加或修改查询字符串参数。这段代码实现了一个简单的JavaScript函数`addpara`,用于向当前页面URL添加或替换指定参数。 #### ...

    javascript函数库

    根据给定的文件信息,我们可以总结出以下JavaScript函数库中的相关知识点: ### 一、字符串处理函数 #### 1. `trim()`, `lTrim()`, 和 `rTrim()` 函数 - **`trim()`**: 移除字符串两端的所有空白字符(包括空格、...

    SQL Server之JSON 函数详解

    在SQL Server中,JSON(JavaScript Object Notation)已经成为一种重要的数据交换格式,特别是在与Web服务交互和处理NoSQL数据时。从SQL Server 2016开始,微软引入了对JSON的内置支持,使得数据库系统能够更加灵活...

    js函数验证

    - **定义**:此函数接收一个字符串参数,并返回一个新的字符串,该字符串已移除所有左侧空白字符(包括空格、制表符等)。 - **代码实现**: ```javascript function LTrim(str) { return str.replace(/^\s*/, ...

    Js字符串操作函数大全(更新)

    ### Js字符串操作函数大全 在JavaScript编程中,字符串操作是非常常见的需求之一。本文将详细介绍一个JavaScript字符串操作集合,包括但不限于小数点处理、空格处理、数据类型校验、过滤特殊字符以及URL参数获取等...

    javascript 取Url参数和去掉字符串前后空格方法

    - `getRequestParameter(paramName)`:该函数接受一个参数名作为输入。 2. **解析URL**: - 使用`location.href`获取当前页面的完整URL。 - 通过`substring`和`indexOf`组合使用,获取从`?`符号之后的所有内容...

    js里replace方法.pdf

    - 当传递给`replace()`的第二个参数是一个函数时,这个函数会被调用每次正则匹配成功,返回值将作为替换的新子串。 - 示例:将所有单词首字母转换为大写,可以通过以下方式实现: ```javascript function ...

    JS脚本去空格函数

    ### JS脚本去空格函数知识点详解 在Web开发中,JavaScript作为一种强大的客户端脚本语言,经常被用来处理各种字符串操作。其中,去除字符串中的空格是一个常见的需求,尤其是在处理表单输入、文本分析等场景时。...

    JavaScript replace new RegExp使用介绍

    JavaScript的replace方法是用于替换字符串中匹配特定模式的子串的函数。该方法可以在字符串中查找指定的值或正则表达式,并将找到的匹配项替换为新指定的文本。replace方法不仅可以进行简单的文本替换,还可以执行...

    JavaScript实用小函数(四)

    "js-validator"这个文件名可能与验证相关的JavaScript函数或库有关,例如表单验证或者数据校验,这也可能是博文中探讨的一个主题。在Web应用中,数据验证是必不可少的一环,确保用户输入的数据符合预设规则,防止...

    只能输入小数和数字的js

    ### 只能输入小数和数字的JS:深入解析与应用 #### 一、引言 在现代Web开发中,确保用户输入数据的有效性和正确性是至关重要的一步。特别是在涉及金额或其他数值输入的情况下,比如商务网站上的商品价格、折扣率等...

    详解JS正则replace的用法方法_.docx

    ### 详解JS正则`replace`的用法 本文旨在深入解析JavaScript中正则表达式与`replace`方法的结合使用技巧。通过一系列基础知识的复习和实战案例的演示,帮助读者掌握这一强大的文本处理工具。 #### 一、正则表达式...

    JavaScript函数大全

    JavaScript函数大全是对JavaScript编程语言中各种函数的详尽概述,涵盖了从基础到高级的各种功能。JavaScript,作为一种广泛应用于网页和互联网应用的脚本语言,它的函数是实现动态交互和复杂逻辑的核心工具。以下是...

    js验证大全 javascript

    ### JS验证大全:JavaScript中的输入控制与数据验证 在网页开发中,JavaScript是实现前端交互的重要工具之一,尤其是在用户输入的验证方面。本文将详细解析一个包含多种输入限制与数据验证脚本的集合,旨在帮助...

    javascript执行eval函数时利用正则表达式去掉回车符换行符和注释

    结合以上四个步骤,我们便能构建一个完整的预处理函数,用于清理输入的字符串,使其适合作为`eval()`的参数。但请注意,`eval()`的使用应谨慎,因为它允许执行任意代码,可能导致安全问题。在大多数情况下,寻找替代...

Global site tag (gtag.js) - Google Analytics