JS的replace方法与正则表达式结合应用讲解

2016-02-19 08:56 2 1 收藏

下面是个超简单的JS的replace方法与正则表达式结合应用讲解教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~

【 tulaoshi.com - Web开发 】

代码如下:

script language="javascript" 
var stringObj="终古人民共和国,终古人民"; 

//替换错别字“终古”为“中国” 
//并返回替换后的新字符 
//原字符串stringObj的值没有改变 
var newstr=stringObj.replace("终古","中国");  
alert(newstr); 
/script 



   比我聪明的你,看完上面的例子之后,会发现第二个错别字“终古”并没有被替换成“中国”,我们可以执行二次replace方法把第二个错别字“终古”也替换掉,程序经过改进之后如下: 


[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
   我们可以仔细的想一下,如果有N的N次方个错别字,是不是也要执行N的N次方replace方法来替换掉错别字呢??呵,不用怕,有了正则表达式之后不用一个错别字要执行一次replace方法。。程序经过改进之后的代码如下


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

上面讲的是replace方法最简单的应用,不知道大家有没有看懂??下面开始讲稍微复杂一点的应用。。


   大家在一些网站上搜索文章的时候,会发现这么一个现象,就是搜索的关键字会高亮改变颜色显示出来??这是怎么实现的呢??其实我们可以用正则表达式来实现,具体怎么样实现呢?简单的原理请看下面的代码




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

上面的程序缺少互动性,我们再改进一下程序,实现可以自主输入要查找的字符



[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
  可能大家都会对$1这个特殊字符表示什么意思不是很理解,其实$1表示的就是左边表达式中括号内的字符,即第一个子匹配,同理可得$2表示第二个子匹配。。什么是子匹配呢??通俗点讲,就是左边每一个括号是第一个字匹配,第二个括号是第二个子匹配。。


   当我们要把查找到的字符进行运算的时候,怎么样实现呢??在实现之前,我们先讲一下怎么样获取某一个函数的参数。。在函数Function的内部,有一个arguments集合,这个集合存储了当前函数的所有参数,通过arguments可以获取到函数的所有参数,为了大家理解,请看下面的代码



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


看懂上面的程序之后,我们再来看下面一个有趣的程序 


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

    我们惊奇的发现,匿名函数竟然被执行了二次,并且在函数里还带有三个参数,为什么会执行二次呢??这个很容易想到,因为我们写的正则表达式是匹配单个数字的,而被检测的字符串刚好也有二个数字,故匿名函数被执行了二次。。在匿名函数内部的那三个参数到底是什么内容呢??为了弄清这个问题,我们看下面的代码。 


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

看了上面的程序,原来可以对匹配到的字符为所欲为。下面简单举一个应用的例子


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

来源:https://www.tulaoshi.com/n/20160219/1588915.html

延伸阅读
标签: Web开发
1概述 首先需要说明的一点,无论是Winform,还是Webform,都有很成熟的日历控件,无论从易用性还是可扩展性上看,日期的选择和校验还是用日历控件来实现比较好。 前几天在CSDN多个版块看到需要日期正则的帖子,所以整理了这篇文章,和大家一起讨论交流,如有遗漏或错误的地方,还请大家指正。 日期正则一般是对格式有要求,且数据不是直接...
标签: Web开发
正则表达式的功能实在太强大了~以下为找到的一个关于正则表达式基本语法的介绍: 首先让我们看两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。例子如下: "^The":表示所有以"The"开始的字符串("There","The cat"等); "of despair$":表示所以以"of despair"结尾的字符串; "^abc$":表示开始和结尾都是"abc"...
标签: Web开发
正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为元字符)。模式描述在搜索文本时要匹配的一个或多个字符串。   正则表达式示例 表达式 匹配 /^\s*$/ 匹配空行。 /\d{2}-\d{5}/ 验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。 /\s*(\S+)(\s[^]*)?[\s\S]*\s*\/\1\s*/ ...
标签: Web开发
正则表达式在PHP中被用来处理复杂的文字串。支持正则表达式的函数有: ereg()ereg replace()eregi replace()split() 这些函数都将正则表达式作为他们的第一个参数。PHP使用POSIX扩展规则表达式(使用POSIX 1003.2)。要找到所有的关于POSIX扩展规则表达式的描述,请查看包括在PHP发行版本之内的regex man页面。 Examp...
正则表达式简介 翻译:NorthTibet 原文出处:Regular Expressions 有些新手对正则表达式不是很熟悉,有必要在此作一简单回顾。如果你是正则表达式高手,可以不用看这一部分。 正则表达式是描述字符串集的字符串。例如,正则表达式“Mic*”描述所有包含“Mic”,后跟零个或多个字符的字符串。Mickey、Microsoft、Michelangelo...

经验教程

373

收藏

79
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部