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

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

输出:Visit W3School!

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

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

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

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

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

var str="Welcome to Microsoft! "
str=str + "We are proud to announce that Microsoft has "
str=str + "one of the largest Web Developers sites in the world." 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被替换了,但是第二个没有被替换,因为没有全局查找替换,所以只替换了第一个。

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

text = "javascript Tutorial";
text.replace(/javascript/i, "JavaScript"); text = "javascript Tutorial";
text.replace(/JAVASCRIPT/i, "JavaScript");

  输出:"JavaScript Tutorial"

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

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

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

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

  输出:"John Doe"

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

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

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

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

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

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

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

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

  输出:"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. linux system()函数详解

    system(3) - Linux man page Name system - execute a shell command Synopsis #include <stdlib.h> ...

  2. svn在commit后报错:is scheduled for addition, but is missing

    删除文件夹后点commit提交,但是报错,报错内容如下: 提示 "svn: Commit failed (details follow): svn: '/***/xxx.c' is sche ...

  3. 移动端动态font-size

    /** * Created by shimin on 2017/8/18. *///计算dpr!function(win, lib) { var timer, doc = win.document, ...

  4. matlab 画图参考小程序

    x=0.1:0.1:0.9; a=[41.37,44.34,44.34,44.66,44.66,44.66,98.85,98.85,98.85];%xxxxxx b=[22.10,22.39,22.3 ...

  5. 02-spark sql

    1.概念 Spark SQL是一个用来处理结构化数据的Spark组件. 优点:  ①SparkSQL是一个SQL解析引擎,将SQL解析成特殊的RDD(DataFrame),然后在Spark集群中运行 ...

  6. ubantu 操作

    应用程序启动器“monodevelop.desktop”还没有被标记为可信任的. 于是在网上查询解决方案,在ubuntu中文论坛找到一个帖子提到这个问题的解决方法,尝试之解决. 帖子地址:http:/ ...

  7. LeetCode 5. Longest Palindromic Substring & 回文字符串

    Longest Palindromic Substring 回文这种简单的问题,在C里面印象很深啊.希望能一次过. 写的时候才想到有两种情况: 454(奇数位) 4554(偶数位) 第1次提交 cla ...

  8. iOS保存gif动态图

    - (void)saveImageToPhotos:(NSData*)gifData { /***注意先倒入库 #import <AssetsLibrary/AssetsLibrary.h> ...

  9. SD-WAN产品常见问题

    转载: http://www.safecdn.cn/website-announcement/2018/12/sd-wan-problem/102.html 1.SD-WAN加速产品最大的优势是什么? ...

  10. getdate — 取得日期/时间信息-----参数是一个 integer 的 Unix 时间戳

      <?php$today = getdate();print_r($today);?> Array ( [seconds] => 40 [minutes] => 58 [ho ...