repalce

在这里插入图片描述

1、replace基本用法

 <script>/*要求将字符串中所有的a全部用A代替*/var str = "javascript is great script language!";//只会将第一个匹配到的a替换成Aconsole.log(str.replace("a", "A")); // => jAvascript is great script language!//只会将第一个匹配到的a替换成A。因为没有在全局范围内查找console.log(str.replace(/a/, "A")); // => jAvascript is great script language!//所有a都被替换成了Aconsole.log(str.replace(/a/g, "A")); // => jAvAscript is greAt script lAnguAge!
</script>

1.1、replace基本用法之替换移除指定class类

<div class="confirm-btn unabled mb-10" id="j_confirm_btn">提交</div>
<script>/*要求将下面这个元素中的unabled类移除掉*/var classname = document.getElementById("j_confirm_btn").className;/*(^|\\s)表示匹配字符串开头或字符串前面的空格,(\\s|$)表示匹配字符串结尾或字符串后面的空格*/var newClassName = classname.replace(/(^|\\s)unabled(\\s|$)/, "");document.getElementById("j_confirm_btn").className = newClassName;
</script>

2、replace高级用法之 ---- $i

2.1、简单的$i用法

<script>/*要求:将字符串中的双引号用"-"代替*/var str = '"a", "b"';console.log(str.replace(/"[^"]*"/g, "-$1-")); // => -$1-, -$1-//输出结果为:-$1-, -$1-/*解释:$1就是前面正则(/"[^"]*"/g)所匹配到的每一个字符。*/
</script>

2.2、$i与分组结合使用

<script>/*要求:将下面字符串替换成:javascript is fn.it is a good script language*/var str = "javascript is a good script language";console.log(str.replace(/(javascript)\s*(is)/g, "$1 $2 fn.it $2")); // => javascript is fn.it is a good script language/*解释:每一对括号都代表一个分组,从左往右分别代表第一个分组,第二个分组...;如上"*(javascript)"为第一个分组,"(is)"为第二个分组。$1就代表第一个分组匹配的内容,$2就代表第二个分组匹配的内容,依此类推...*/
</script>

2.3、$i与分组结合使用----关键字高亮显示

当我们使用谷歌搜索的时候我们会发现我们搜索的关键字都被高亮显示了,那么这种效果用JavaScript能否显示呢?答案是可以的,使用replace()很轻松就搞定了。

<script>/*要求:将下列字符串中的"java"用红色字体显示*/var str = "Netscape在最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。但JavaScript的主要设计原则源自Self和Scheme。";document.write(str.replace(/(java)/gi,'<span style="color: red;font-weight: 800;">$1</span>'));/*解释:必须要开启全局搜索和忽略大小写,否则匹配不到所有的”java”字符*/
</script>

2.4、反向分组----分组的反向引用

在正则中,当我们需要匹配两个或多个连续的相同的字符的时候,就需要用到反向引用了,查找连续重复的字符是反向引用最简单却也是最有用的应用之一。上面的”$i”也是反向分组的一种形式,这里再介绍另一种反向分组。

<script>/* /ab(cd)\1e/ 这里的 \1 表示把第1个分组的内容重复一遍*/console.log(/ab(cd)\1e/.test("abcde")); // => falseconsole.log(/ab(cd)\1e/.test("abcdcde")); // => true/*要求:将下列字符串中相领重复的部分删除掉"*/var str = "abbcccdeee";var newStr = str.replace(/(\w)\1+/g, "$1");console.log(newStr); // => abcde
</script>

3、replace高级用法之参数二为函数

replace函数的第二个参数不仅可以是一个字符,还可以是一个函数!

<script>var str = "bbabc";var newStr = str.replace(/(a)(b)/g, function() {console.log(arguments); //["ab", "a", "b", 2, "bbabc"]/*参数依次为:1、整个正则表达式所匹配到的字符串----"ab"2、第一个分组匹配到的字符串,第二个分组所匹配到的字符串....依次类推一直      到最后一个分组----"a,b"3、此次匹配在源字符串中的下标,返回的是第一个匹配到的字符的下标----24、源字符串----"bbabc"*/});
</script>

3.2、参数二为函数之首字母大写案例

<script>/*要求:将下列字符串中的所有首字母大写*/var str ="Tomorrow may not be better, but better tomorrow will surely come!";var newStr = str.replace(/\b\w+\b/gi, function(matchStr) {console.log(matchStr); //匹配到的字符return matchStr.substr(0, 1).toUpperCase() + matchStr.substr(1);});console.log(newStr); // => Tomorrow May Not Be Better, But Better Tomorrow Will Surely Come!
</script>

3.3、参数二为函数之绑定数据----artTemplate模板核心

    <h1>周星驰喜剧电影:</h1><div id="content"></div>
<script type="text/javascript">var data = {name: "功夫",protagonist: "周星驰"},domStr ="<div><span>名称:</span><span>{{name}}</span></div><div><span>导演:</span><span>{{protagonist}}</span> </div>";document.getElementById("content").innerHTML = formatString(domStr, data);/*绑定数据的核心就是使用正则进行匹配*/function formatString(str, data) {return str.replace(/{{(\w+)}}/g, function(matchingStr, group1) {return data[group1];});}
</script>

4、replace高级用法之获取与正则表达式匹配的文本

4.1、replace高级用法之获取与正则表达式进行匹配的源字符串

<script>var str = "i am a good man";var newStr = str.replace(/good/g, "$&");console.log(newStr); //结果:输出i am a good man/*解释:在这里”$&”就是与正则表达式进行匹配的那个源字符串*/
</script>

4.2、replace高级用法之获取正则表达式匹配到的字符

<script>/*要求:将"i am a good man"替换成"i am a good-good man" */var str = "i am a good man";var newStr = str.replace(/good/g, "$&-$&");console.log(newStr); // => i am a good-good man/*解释:在这里”$&”可以获取到前面正则表达式匹配的内容,如上面的”$&”就是正则表达式匹配到的”good”*/
</script>

5、replace高级用法之获取正则匹配的左边的字符

<script>/*要求:将下列字符串替换成"java-java is a good script"*/var str = "javascript is a good script";var newStr = str.replace(/script/, "-$`");console.log(newStr); // => java-java is a good script/*解释:"$`"获取的是正则左边的内容,如上正则中"script"字符前面的是"java","-$`"就是"-java","-$`"会把script替换掉。*/
</script>

6、replace高级用法之获取正则匹配的右边的字符

<script>/*要求:将下列字符替换成"java is a good language!it is a good script is a good script"*/var str = "javascript is a good script";var newStr = str.replace(/script/, " is a good language!it$'");console.log(newStr); // => java is a good language!it is a good script is a good script/*解释:"$'"获取的就是str右边的内容,如上正则中"$'"就是" is a good script"。" is a good language!it$'"会把正则匹配到的"script"替换掉*/
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win8环境下 IIS6部署MVC网站出现的无法显示此网页错误

在Win7环境下做好的网站&#xff0c;新的Win8环境发布出现如下图错误&#xff1a; 解决方法如下&#xff1a; 运行&#xff1a; 转载于:https://www.cnblogs.com/xiashenbin/p/4098274.html

Codeforces Round #277(Div 2) A、B、C、D、E题解

转载请注明出处&#xff1a; http://www.cnblogs.com/fraud/ ——by fraud A. Calculating Function 水题&#xff0c;判个奇偶即可 1 #include <iostream>2 #include <sstream>3 #include <ios>4 #include <iomanip>5 #include <functio…

Mac OS X 安装和配置ngrok

一、下载ngrok 到官网下载ngrok: https://ngrok.com/download 二、配置ngrok 进入终端&#xff0c;执行以下命令&#xff1a; open -e .bash_profile 修改.bash_profile&#xff08;以实际安装目录为准&#xff09;&#xff1a; export PATH${PATH}:/Users/xuxiansheng/D…

Windows Phone理解和运用ItemTemplate、ContentTemplate和DataTemplate

2.2.5 ItemTemplate、ContentTemplate和DataTemplate 在理解ItemTemplate、ContentTemplate和DataTemplate的关系的之前&#xff0c;我们先来看看ContentControl类和ItemsControl类。ContentControl类是内容控件的基类&#xff0c;如Button, CheckBox&#xff0c;最明显的特征就…

Mint-Ui的mt-search点击选中

<template><div class"page-search"><mt-search autofocus v-model"value" placeholder"搜索"> </mt-search><mt-cellv-for"item of filterResult":key"item":title"item"click.nativ…

毕业了!

忆往昔 论文犹如一座大山 日夜码字不知疲倦 写了半天改个没完 良辰美景于我何干 俱往矣 神马检索与期刊 能有几篇是真言 而今迈步从头越 翻过大山尽开颜

vue如何返回上一页效果

如何通过点击的方式控制当前页返回到上一个路由页面&#xff1a; 1.在当前页面添加返回按钮 <div style"text-align: center"><el-button v-on:click"backHistory">取消</el-button> </div>2.在方法体内写back方法实现点击返回上…

机器学习算法基础概念学习总结

转自&#xff1a;http://blog.csdn.net/lantian0802/article/details/38333479 1.基础概念&#xff1a; (1) 10折交叉验证&#xff1a;英文名是10-fold cross-validation&#xff0c;用来测试算法的准确性。是常用的测试方法。将数据集分成10份。轮流将其中的9份作为训练数据&a…

寻路大数据:海量数据与大规模分析

寻路大数据&#xff1a;海量数据与大规模分析&#xff08;Google大数据专家力作超豪华译者|作序者真正梳理趋势与生态|方案与工具选型|应用场景与价值挖掘的独家内参&#xff09; 【美】Michael Manoochehri&#xff08;迈克尔.马诺切里&#xff09;著 戴志伟等 译 ISBN 978…