search(),match(),用于查找指定字符串返回首次出现的索引值与指定的字符串。这篇我们讲找到指定字符串之后将其替换掉。直接贴:

  1. var str="Visit Microsoft!"
  2. console.log(str.replace(/Microsoft/, "W3School"))

输出:Visit W3School!

代码直观就能看出,用后半部分的W3School把前半部分指定检索字符串的Microsoft字符替换掉了。

前半部分:寻找需要替换的字符串

后半部分:要替换的字符串内容

后面替换前面,先找,后替换。

好,我们来看看加了全局替换符的效果

  1. var str="Welcome to Microsoft! "
  2. str=str + "We are proud to announce that Microsoft has "
  3. str=str + "one of the largest Web Developers sites in the world."
  4.  
  5. console.log(str.replace(/Microsoft/g, "W3School"))

输出:"Welcome to W3School! We are proud to announce that W3School has one of the largest Web Developers sites in the world."

因为加了g所以执行全局替换,第一个str中的Microsoft被替换了,第二个中的也被替换了。那如果我不加g会有什么效果呢?我们来看看:

输出:"Welcome to W3School! We are proud to announce that Microsoft has one of the largest Web Developers sites in the world."

第一个str中的Microsoft被替换了,但是第二个没有被替换,因为没有全局查找替换,所以只替换了第一个。

好,我们来看看忽略大小写在这个方法里的使用

  1. text = "javascript Tutorial";
  2. text.replace(/javascript/i, "JavaScript");
  3.  
  4. text = "javascript Tutorial";
  5. text.replace(/JAVASCRIPT/i, "JavaScript");

  输出:"JavaScript Tutorial"

因为加了i,忽略了查找时对字符串的大小写,只要内容对上就找到了,所以两端输出的结果一致。

好,我们来看看用replace()方法来转换姓名的格式问题,例:

把"Doe,John"转换为"John Doe"的格式,贴代码:

  1. name = "Doe, John";
  2. name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1");

  输出:"John Doe"

我们看输出结果已经将姓名格式转换成功了,姓和名换了位置,且去掉了逗号改为空格。好,我们来解析下代码。

前面是需要查找的字符串正则表达式,\w查找单词字符,\s*查找空白字符。这样,就连成了规格字符串了。$2表示后面,$1表示前面。

好,我们来看看把字符串中所有双引号替换为单引号

  1. name = '"a", "b"';
  2. name.replace(/"([^"]*)"/g, "'$1'");

  输出:"'a', 'b'"

/"([^"]*)"/g是查找所有的"

好,再来看下将首字母替换为大写的例子:

  1. name = 'aaa bbb ccc';
  2. uw=name.replace(/\b\w+\b/g, function(word){
  3. return word.substring(0,1).toUpperCase()+word.substring(1);}
  4. );

  输出:"Aaa Bbb Ccc"

代码解析:\b匹配单词边界,\w查找单词字符,后半部分定义了一个函数,函数返回值用于替换单词边界。substring()用于提取字符串中介于两个下标之间的字符。toUpperCase()用于把字符串转为大写,先将第一个单词的第一个字符转为大写然后拼接上后面的。

replace()方法解析的更多相关文章

  1. Fragment 源码解析add()和replace()方法

    1.有问题的代码: MainActivity public class MainActivity extends AppCompatActivity implements View.OnClickLi ...

  2. 关于字符串replace方法第二个参数探究

    网上有关replace的文章很多了,这里主要聊聊它的第二个参数.阅读本文需要对replace方法有一定了解.W3school=>replace 我们要把一段字符串中的某些指定字符替换掉,第一时间 ...

  3. JavaScript中String.prototype.replace() 方法的使用

    摘抄于:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace ...

  4. 2019-2-20C#开发中常用加密解密方法解析

    C#开发中常用加密解密方法解析 一.MD5加密算法 我想这是大家都常听过的算法,可能也用的比较多.那么什么是MD5算法呢?MD5全称是 message-digest algorithm 5[|ˈmes ...

  5. JavaScript replace() 方法

    参考:http://www.w3school.com.cn/jsref/jsref_replace.asp 需要有一点注意的是:可以是函数的形式做为返回值,如下: "test{0}" ...

  6. 关于replace()方法中第二个参数的转义问题

    如果你想通过Javascript代码在网页中呈现 \ 字符,则在JS代码中你必须输入两个反斜杠 \\,否则会报错.比如: var a = "\"; alert(a); //chro ...

  7. Python的方法解析顺序(MRO)[转]

    本文转载自: http://hanjianwei.com/2013/07/25/python-mro/ 对于支持继承的编程语言来说,其方法(属性)可能定义在当前类,也可能来自于基类,所以在方法调用时就 ...

  8. 字符串的replace()方法隐藏着什么不可告人秘密?

    最近在做JS算法项目时发现一个令我匪夷所思的问题, 这里想记录一下问题. 首先介绍一下字符串replace()方法的基本用法. replace() 方法使用一个替换值(replacement)替换掉一 ...

  9. sqlalchemy mark-deleted 和 python 多继承下的方法解析顺序 MRO

    sqlalchemy mark-deleted 和 python 多继承下的方法解析顺序 MRO 今天在弄一个 sqlalchemy 的数据库基类的时候,遇到了跟多继承相关的一个小问题,因此顺便看了一 ...

随机推荐

  1. 安装 dubbo

    Dubbo的介绍: 是一个java版的RPC框架,由阿里巴巴开发并使用,结合zookeeper,实现流动计算架构完成资源调度和治理的工作 dubbo管控台可以对注册到zookeeper注册中心的服务或 ...

  2. linux系统配置jdk环境

    前提:linux服务器+JDK8-linux版本 工具:FileZilla+Xshell 将jdk上传到服务器的某个文件夹(本人是JDK) 进入该文件夹,输入tar xzvf  jdk-8u77-li ...

  3. delphi中Application.MessageBox函数用法详解

    delphi中Application.MessageBox函数用法详解 Application.MessageBox是TApplication的成员函数,声明如下:functionTApplicati ...

  4. Intorduction To Computer Vision

    本文将主要介绍图像分类问题,即给定一张图片,我们来给这张图片打一个标签,标签来自于预先设定的集合,比如{people,cat,dog...}等,这是CV的核心问题,图像分类在实际应用中也有许多变形,而 ...

  5. sqlserver默认的内存策略

    sqlserver默认的内存策略,如果内存足够大,没有限制的话,会把一次搜索结果都放在内存中,下次搜索如果数据没发生变化(数据库缓存依赖策略),那么直接在内存数据中搜索,而不重新加载数据.可以通过每次 ...

  6. vs2017配置文件目录

    C:\Users\Administrator\AppData\Local\Microsoft\VisualStudio\15.0_6d0a0a42

  7. 大小端,memcpy和构造函数

    问题:memcpy一段内存到std::bitset里,bitset里的内存数据和被拷贝的内存数据对应不上 代码如下: #include <iostream> #include <bi ...

  8. LeetCode 失败的尝试 10. regular expression matching & 正则

    Regular Expression Matching 看到正则就感觉头大,因为正则用好了就很强大.有挑战的才有意思. 其实没有一点思路.循环的话,不能一一对比,匹配模式解释的是之前的字符.那就先遍历 ...

  9. Eclipse中JSP生成的class文件去了哪里?

    转自:http://www.cnblogs.com/xing901022/p/4352999.html 首先应该了解的是Tomcat在Eclipse的映射关系,参考前一篇博文所述:Tomcat的服务器 ...

  10. 一个全栈Web/移动App开发学习路径

    HTML.CSS 和 JavaScript 网页开发的基本元素,包括HTML.CSS个JavaScript.本课程完全适合零基础的同学,当然如果你有相关开发经验更好.在课程开始呢,我们先探索与讨论HT ...