当前位置:首页 > 日记 > 正文

js中string之正则表达式replace方法详解

js中string之正则表达式replace方法详解

replace方法是javascript涉及到正则表达式中较为复杂的一个方法,严格上说应该是string对象的方法。只不过牵扯到正则的时候比较多一些。需要我们灵活的使用。

语法: strinbj.replace(regexp/substr,replacement);

第一个参数:必需。字符串中要替换的子串或正则RexExp;

第二个参数:必需,一个字符串值,规定了替换文本或生成替换文本的函数。

返回值:注意它的返回值是一个新的字符串,并没有更改原有字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。

所以根据它的参数的不同分为很多种情况,以下一一对各种情况加以分析:

NO.1 两个参数都是字符串

var str1 = '这是一段原始文本,需要替换的内容"这要替换"!';var newStr = str1.replace('这要替换','need replace');console.log( newStr );  //输出:  这是一段原始文本,需要替换的内容"need replace"!

上面的例子中第二个参数字符串'need replace',替换掉了第一个参数字符串'这要替换'。这是最简单的一种形式。

NO.2 第一个参数是正则,第二个参数是字符串

var str2 = '这是一段原始文本,需要替换的内容"ac这要替换bb"!';var newStr = str2.replace( /([a-z])+/g,'qqq' );console.log( newStr );  //输出:  这是一段原始文本,需要替换的内容"qqq这要替换qqq"!

上面的例子字符串'qqq',替换了正则匹配的内容。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。

NO.3 第一个参数是正则,第二个参数是带$符的字符串

var str3 = '这是一段原始文本,"3c这要替换4d"!';var newStr = str3.replace( /([0-9])([a-z])/g,"$1" );console.log( newStr );  //输出:  这是一段原始文本,"3这要替换4"!';

上面的例子,$1表示regexp中的第一个子表示即([0-9])匹配单个数字,同理若是$2则表示第二个子表示即([a-z]);所以,'3c'这个匹配到的整体被第一个子表示说表示的'3'替换,'4d'被第一个子表示匹配的数字'4'所替换。其他几个同理可得:

(/([0-9])([a-z])/g,”$2″)—>////输出: 这是一段原始文本,”c这要替换d”!'; (3c和4d被相应的第二个子表示匹配出来的c和d替换)(/([0-9])([a-z])/g,”$'”)—>////输出: 这是一段原始文本,”这要替换d”!这要替换”!”!'; (3c被3c右侧文本替换,4d右侧是”!替换,所以出现俩次)

NO.4 第一个参数是正则,第二个参数函数

var str4 = '这是一段原始文本,需要替换的内容"aa这要bbb替换ccccc"!';var newStr = str4.replace( /[a-z]+/g,function ($0){  var str = '';  for (var i = 0; i < $0.length; i++) {    str += '*';  };  return str;} );console.log( newStr );  //这是一段原始文本,需要替换的内容"**这要***替换*****"!

上面的例子函数的第一个参数为匹配的regexp的整体,根据长度函数返回值为相应替换的文本;

NO.5 第一个参数是正则且有子表达式,第二个参数函数且带有多个参数

var str5 = '这是一段原始文本,需要替换的内容"3c这要替换4d"!';var newStr = str5.replace( /([0-9])([a-z])/g,function (arg1,arg2,arg3,arg4,arg5){ console.log( arg1 ); console.log( arg2 ); console.log( arg3 ); console.log( arg4 ); console.log( arg5 );} );

输出:

3c
3
c
17
这是一段原始文本,需要替换的内容"3c这要替换4d"!
4d
4
d
23

这是一段原始文本,需要替换的内容"3c这要替换4d"!

上面的例子第一个参数arg1表示匹配的整体,arg2表示第一个子表达式,arg3表示第二个子表达式,接下来的参数arg4是一个整数,声明了表示子匹配在 strinbject 中出现的位置。最后一个参数是 strinbject 本身。

以上就是replace方法各种可能的情况。确实是一个需要深入理解的方法,不过确实也很强大的一个方法,值得深入研究!

相关文章

Spring jdbc中数据库操作对象化模

Spring jdbc中数据库操作对象化模

数据库操作,模型,对象,详解,实例,Spring jdbc中数据库操作对象化模型的实例详解Spring Jdbc数据库操作对象化 使用面向对象方式表示关系数据库的操作,实现一个线程安全可复用的对象模型,其顶级父类接口RdbmsOperation. SqlOperation继承该接…

最通俗易懂的javascript变量提升详

最通俗易懂的javascript变量提升详

变量提升,易懂,通俗,详解,电脑软件,如下所示:a = 'ghostwu';var a;console.log( a );在我没有讲什么是变量提升,以及变量提升的规则之前, 或者你没有学习过变量提升,如果按照现有的javascript理解, 对于上述的例子,你可能会认为第3行代码的输出…

Dreamweaver如何向网页添加音乐

Dreamweaver如何向网页添加音乐

音乐,网页,电脑软件,Dreamweaver,当我们在做网页时,我们会添加你喜欢的音乐,并为你带来今天添加音乐的方式。 软件名称:Adobe Dreamweaver CC 20143264位中文破解安装版(附破解教程)软件大小:320mb更新时间:2014-06-25 1。首先,打开DW软件并构建…

用PHP解决约瑟夫环算法实例

用PHP解决约瑟夫环算法实例

算法,约瑟夫,实例,电脑软件,PHP,本文介绍了用PHP堆栈解决约瑟夫环问题的算法,供大家参考: 约瑟夫环问题:39个犹太人,约瑟夫斯和他的朋友们藏在山洞里,和39个犹太人决定死而不是被敌人抓住。我决定自杀,41人排成一圈,从第一个人开始数,报告数量的每…

Node.js使用orm2进行update操作时

Node.js使用orm2进行update操作时

修改,字段,操作,解决方法,电脑软件,前言最近在工作中遇到一个问题,在使用Orm2进行model修改时,发现当对关联字段进行update操作时,执行了2次SQL,第一次把值改为了我们期望的值,第二次又会把值改回成原来的值。经过调查,当autoFetch开启时,会自动取…

WPS文字中怎么制作联合发文文件头

WPS文字中怎么制作联合发文文件头

文件,文字,方法,发文,电脑软件,  WPS文字中怎么制作联合发文文件头?在WPS文字中,表格工具的作用不仅仅是用来制作表格的。活用表格,有时会收到意想不到的效果,完成一些特殊的任务。下面小编就教你WPS文字中制作联合发文文件头的方法。WPS文…

word页面设置为横向页面的方法

word页面设置为横向页面的方法

方法,横向,页面,设置为,电脑软件,word怎么设置为横向页面呢?在编辑word文档时,有时我们需要的横向长度不够长,这时候就需要把word的横向页面改为纵向页面,以下就是小编给大家分享的word页面设置为横向页面的方法。方法步骤如下:1.文件--页面设…

PHP使用PDO访问oracle数据库的步骤

PHP使用PDO访问oracle数据库的步骤

步骤,数据库,详解,电脑软件,PHP,前言PDO 从一开始就吸取了现有数据库扩展成功和失败的经验教训。因为 PDO 的代码是全新的,所以我们有机会重新开始设计性能,以利用 PHP 5 的最新特性。PDO 旨在将常见的数据库功能作为基础提供,同时提供对于 RD…

PHP基于回溯算法解决n皇后问题的方

PHP基于回溯算法解决n皇后问题的方

方法,回溯算法,示例,皇后,电脑软件,本文实例讲述了PHP基于回溯算法解决n皇后问题的方法。分享给大家供大家参考,具体如下:这里对于n皇后问题就不做太多的介绍,相关的介绍与算法分析可参考前面一篇C++基于回溯法解决八皇后问题。回溯法的基本做…

WPS演示2013如何对进行淡化处理

WPS演示2013如何对进行淡化处理

演示,图片,电脑软件,WPS,  有时候插入图片之后,觉得颜色太鲜艳了,想要淡化色彩,其实并不难。以下是小编为您带来的关于WPS演示2013对图片进行淡化处理,希望对您有所帮助。WPS演示2013对图片进行淡化处理①启动WPS演示,插入图片之后,在图片上插…

ps怎么设计一个网络感十足的社交行

ps怎么设计一个网络感十足的社交行

网络,行业,社交,电脑软件,ps,ps中想要给网页设计一个科技感的banner,该怎么设计呢?下面我们就来看看详细的教程。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、新建文件,创建画布2、添加一个科技感的…

如何配置IIS运行 ASPX

如何配置IIS运行 ASPX

运行,配置,电脑软件,IIS,ASPX,如何配置IIS运行 ASPX最近在做 .ASPX 搞了好一阵子,才弄懂这个东西,和大家分享&hellip;&hellip; 欢迎讨论一、先注册asp.net组件: (asp.NET 组件即:.Net Framework )开始->运行->cmd->执行命令:C:\windows\Microsof…