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 的数据库基类的时候,遇到了跟多继承相关的一个小问题,因此顺便看了一 ...
随机推荐
- MySQL操作mysqldump命令详解
--all-databases , -A导出全部数据库. --all-tablespaces , -Y导出全部表空间. --no-tablespaces , -y不导出任何表空间信息. --add-d ...
- OpenCV-Python基本功能
一.图像读取/保存 import cv2 img = cv2.imread("name.png") cv2.imwrite('save.jpg', img) #显示图像 cv2.i ...
- centos 7 安装sqoop 1.4.7
1. 下载sqoop1.4.7 cd /home/workspace wget https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/1.4.7/sqoo ...
- 解决最近vs2017总是在加载工程的时候卡住不不动
就像这样 解决方法 删除工程目录下的.vs目录
- 在mvc中动态加载菜单
最近做了一个项目, 要在客户端动态的显示菜单,也就是这些菜单是保存在数据库中的, 在客户端动态加载菜单,这样做的好处很明显,就是菜单很容易修改,直接在后台进行维护,再也不会直接在前面的 视图页面中进行 ...
- layerUi与AJAX的一种思路
javascript:function rep(id) { layer.confirm("确定要拒绝此认证吗?", { btn: ["确定", "取消 ...
- python中列表删除和多重循环退出
在学习python的时候,会有一些梗非常不适应,在此列举列表删除和多重循环退出的例子: 列表删除里面的坑 比如我们有一个列表里面有很多相同的值,假如:nums=[1,6,6,3,6,2,10,2,10 ...
- 详解CSS3属性前缀(转)
原文地址 CSS3的属性为什么要带前缀 使用过CSS3属性的同学都知道,CSS3属性都需要带各浏览器的前缀,甚至到现在,依然还有很多属性需要带前缀.这是为什么呢? 我的理解是,浏览器厂商以前就一直在实 ...
- VIM常用的基本操作
:wq 退出并保存 :q! 退出不保存 :set number 设置行号 查找: 按‘/’,然后输入要查找的字符,Enter.?和/的区别是,一个向前(下)找,一个向后(上).另外,‘*’可以 ...
- gentoo intel 安装桌面
首先增加 vim ~/.xinitrc [[ -f ~/.Xresources ]] && xrdb -merge ~/.Xresources # dbus before fcitx ...