replace()方法解析
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()方法解析的更多相关文章
- Fragment 源码解析add()和replace()方法
1.有问题的代码: MainActivity public class MainActivity extends AppCompatActivity implements View.OnClickLi ...
- 关于字符串replace方法第二个参数探究
网上有关replace的文章很多了,这里主要聊聊它的第二个参数.阅读本文需要对replace方法有一定了解.W3school=>replace 我们要把一段字符串中的某些指定字符替换掉,第一时间 ...
- JavaScript中String.prototype.replace() 方法的使用
摘抄于:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace ...
- 2019-2-20C#开发中常用加密解密方法解析
C#开发中常用加密解密方法解析 一.MD5加密算法 我想这是大家都常听过的算法,可能也用的比较多.那么什么是MD5算法呢?MD5全称是 message-digest algorithm 5[|ˈmes ...
- JavaScript replace() 方法
参考:http://www.w3school.com.cn/jsref/jsref_replace.asp 需要有一点注意的是:可以是函数的形式做为返回值,如下: "test{0}" ...
- 关于replace()方法中第二个参数的转义问题
如果你想通过Javascript代码在网页中呈现 \ 字符,则在JS代码中你必须输入两个反斜杠 \\,否则会报错.比如: var a = "\"; alert(a); //chro ...
- Python的方法解析顺序(MRO)[转]
本文转载自: http://hanjianwei.com/2013/07/25/python-mro/ 对于支持继承的编程语言来说,其方法(属性)可能定义在当前类,也可能来自于基类,所以在方法调用时就 ...
- 字符串的replace()方法隐藏着什么不可告人秘密?
最近在做JS算法项目时发现一个令我匪夷所思的问题, 这里想记录一下问题. 首先介绍一下字符串replace()方法的基本用法. replace() 方法使用一个替换值(replacement)替换掉一 ...
- sqlalchemy mark-deleted 和 python 多继承下的方法解析顺序 MRO
sqlalchemy mark-deleted 和 python 多继承下的方法解析顺序 MRO 今天在弄一个 sqlalchemy 的数据库基类的时候,遇到了跟多继承相关的一个小问题,因此顺便看了一 ...
随机推荐
- 安装 dubbo
Dubbo的介绍: 是一个java版的RPC框架,由阿里巴巴开发并使用,结合zookeeper,实现流动计算架构完成资源调度和治理的工作 dubbo管控台可以对注册到zookeeper注册中心的服务或 ...
- linux系统配置jdk环境
前提:linux服务器+JDK8-linux版本 工具:FileZilla+Xshell 将jdk上传到服务器的某个文件夹(本人是JDK) 进入该文件夹,输入tar xzvf jdk-8u77-li ...
- delphi中Application.MessageBox函数用法详解
delphi中Application.MessageBox函数用法详解 Application.MessageBox是TApplication的成员函数,声明如下:functionTApplicati ...
- Intorduction To Computer Vision
本文将主要介绍图像分类问题,即给定一张图片,我们来给这张图片打一个标签,标签来自于预先设定的集合,比如{people,cat,dog...}等,这是CV的核心问题,图像分类在实际应用中也有许多变形,而 ...
- sqlserver默认的内存策略
sqlserver默认的内存策略,如果内存足够大,没有限制的话,会把一次搜索结果都放在内存中,下次搜索如果数据没发生变化(数据库缓存依赖策略),那么直接在内存数据中搜索,而不重新加载数据.可以通过每次 ...
- vs2017配置文件目录
C:\Users\Administrator\AppData\Local\Microsoft\VisualStudio\15.0_6d0a0a42
- 大小端,memcpy和构造函数
问题:memcpy一段内存到std::bitset里,bitset里的内存数据和被拷贝的内存数据对应不上 代码如下: #include <iostream> #include <bi ...
- LeetCode 失败的尝试 10. regular expression matching & 正则
Regular Expression Matching 看到正则就感觉头大,因为正则用好了就很强大.有挑战的才有意思. 其实没有一点思路.循环的话,不能一一对比,匹配模式解释的是之前的字符.那就先遍历 ...
- Eclipse中JSP生成的class文件去了哪里?
转自:http://www.cnblogs.com/xing901022/p/4352999.html 首先应该了解的是Tomcat在Eclipse的映射关系,参考前一篇博文所述:Tomcat的服务器 ...
- 一个全栈Web/移动App开发学习路径
HTML.CSS 和 JavaScript 网页开发的基本元素,包括HTML.CSS个JavaScript.本课程完全适合零基础的同学,当然如果你有相关开发经验更好.在课程开始呢,我们先探索与讨论HT ...