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 的数据库基类的时候,遇到了跟多继承相关的一个小问题,因此顺便看了一 ...
随机推荐
- Http跨域
一.传统 ajax跨域访问是一个老问题了,解决方法很多,比较常用的是JSONP方法,JSONP方法是一种非官方方法,而且这种方法只支持GET方式,不如POST方式安全. 即使使用jQuery的json ...
- Can't create handler inside thread that has not called Looper.prepare()
Looper.prepare(); // Can't create handler inside thread that has not called Looper.prepare(). Toast. ...
- 请求(Request)的参数(Param)里包含特殊字符(#等)的正确处理方式
当调用restful接口,并且url中有参数传过去时,比如http://test.com?param=woshi#miaoyinga. 后台在使用@RequestParam("param&q ...
- BZOJ2054 疯狂的馒头 并查集
题意:懒得写了有空再补上 链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2054 离线从后往前做,并查集维护下一个没染色的就可以啦- #incl ...
- 【Selenium-WebDriver自学】Log4J的设置(十五)
==================================================================================================== ...
- install
程序包:GNU coreutils 语法: 类似于“cp”,复制文件后默认具有执行权限(755). 选项: 包含公共选项 -d,创建目录. -m,指定复制后的权限设定(默认设定755). -o,指定 ...
- [Unity插件]Lua行为树(十二):行为树管理
之前运行的行为树,都是一颗总树,那么实际上会有很多的总树,因此需要对行为树进行管理. BTBehaviorManager.lua BTBehaviorManager = {}; local this ...
- excel 获取提取数字
=MID(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&"0123456789")),2*LEN(A2)-LENB(A2)) 第一,如果需要提取 ...
- Maven更新后本地仓库jar后缀带有 lastUpdated
Maven在下载仓库中找不到相应资源时,会生成一个.lastUpdated为后缀的文件 1.需要通过mvn compile -U查明下载失败的原因,一般就是setting.xml中的配置问题 2.注意 ...
- if、else、elif
if后面+判断条件 elif后面+判断条件 else 否则进行某些操作 举个列子 1 a = raw_input(">>>") 2 if a == "h ...