js 字符串的replace() 方法和实现replaceAll() 方法
一、js中字符串的替换使用replace() 方法,但它只替换第一个匹配子串。如下例:
<script type="text/javascript">
var sourceString = "我是被替换的字符串,是被替换的哦";
var replaceString = sourceString.replace("替换", "replace");
alert(replaceString); // 我是被replace的字符串,是被替换的哦
</script>
可以看到替换后的replaceString的值为"我是被replace的字符串,是被替换的哦 ",replace(searchValue,replaceValue)方法替换的只是第一个匹配的字符串,那么如何实现替换全部匹配的字符串呢?——可以使用replace(searchRegexp,replaceValue)的正则表达式方式来实现。
<script type="text/javascript">
var sourceString = "我是被替换的字符串,是被替换的哦";
var replaceString = sourceString.replace(/替换/gm, "replace"); //sourceString.replace(new RegExp("替换", "gm"), "replace");
alert(replaceString); // 我是被replace的字符串,是被replace的哦
</script>
二、添加 Stirng对象的原型方法:实现replaceAll()方法
<script type="text/javascript">
// 替换所有
String.prototype.replaceAll = function (searchString, replaceString, ignoreCase) {
if (RegExp.prototype.isPrototypeOf(searchString)) {
return this.replace(searchString, replaceString);
} else {
return this.replace(new RegExp(searchString, (ignoreCase ? "gmi" : "gm")), replaceString);
}
} var sourceString = "我是被替换的字符串,是被替换的哦,Is Replace or replace?";
var replaceString = sourceString.replaceAll("替换", "replace");
//replaceString = sourceString.replaceAll(/替换/gm, "replace");
//replaceString = sourceString.replaceAll(new RegExp("替换", "gm"), "replace");
//replaceString = sourceString.replaceAll("replace", "替换"); // 我是被替换的字符串,是被替换的哦,Is Replace or 替换?
//replaceString = sourceString.replaceAll("replace", "替换", true); // 我是被替换的字符串,是被替换的哦,Is 替换 or 替换?
console.log(replaceString);
alert(replaceString); // 我是被replace的字符串,是被replace的哦,Is Replace or replace?
</script>
js 字符串的replace() 方法和实现replaceAll() 方法的更多相关文章
- JavaScript进阶(四)js字符串转换成数字的三种方法
js字符串转换成数字的三种方法 在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b. ...
- js 字符串转换成数字的三种方法
在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形 ...
- js字符串转成数字的三种方法
js读取的html代码中获得的值 ,统统是以字符串的形式呈现的,为了方便我们后面对数据的操作,有时候我们有必要进行转换一下. 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转 ...
- js实现replaceAll方法
js本来有replace方法,请看w3school的说明: replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 语法: stringObject.rep ...
- js字符串 数字 的转换
js 字符串转化成数字 的 三种方法主要有 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数 ...
- js 字符串 replace replaceAll
var str = "男的女的老的少的"; alert(str.replace('的','')); 可以看到替换后的str的值为"男女的老的少的",replac ...
- js中字符串的replace方法区分单双引号
今天遇到一问题,js文件中调用字符串的replace方法,不起作用. 后来排查可能觉得replace("<option value='1'>admin</option&g ...
- 从js的repeat方法谈js字符串与数组的扩展方法
js将字符串重复N次的repeat方法的8个版本 /* *@desc: 将一个字符串重复自身N次 */ //版本1:利用空数组的join方法 function repeat(target, n) { ...
- 浅谈 js 字符串 trim 方法之正则篇
原文:浅谈 js 字符串 trim 方法之正则篇 关于 trim 其实没啥好说的,无非就是去除首位空格,对于现代浏览器来说只是简单的正则 /^\s+|\s+$/ 就可以搞定了.而且支持中文空格 等 ...
随机推荐
- Spring Boot + JPA(hibernate 5) 开发时,数据库表名大小写问题
(转载)Spring Boot + JPA(hibernate 5) 开发时,数据库表名大小写问题 这几天在用spring boot开发项目, 在开发的过程中遇到一个问题hibernate在执 ...
- 原生javascript制作时钟
用JavaScript来制作实时的时钟 效果图如下: 接下来,我会一步一步向大家介绍如何制作,并将里面的一些值得注意的事项提出来. 首先是把框架搭构起来, <div> <canvas ...
- Android Notification 详解
转载自 http://www.cnblogs.com/travellife/  Notification 概述 Notification,是一种具有全局效果的通知,可以在系统的通知栏中显示.当 A ...
- 转 MYSQL InnoDB Record, Gap, and Next-Key Locks
http://dev.mysql.com/doc/refman/5.0/en/innodb-record-level-locks.html InnoDB has several types of re ...
- __x__(46)0910第六天__框架集
框架集frameset 和 内联框架iframe 的作用类似: 在一个页面中,引入其他的外部html页面. 框架集可以同时引入多个页面. 在 html5 中,推荐使用框架集,而不推荐使用iframe ...
- linux locate命令
1.命令简介 locate(locate) 命令用来查找文件或目录. locate命令要比find -name快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/ml ...
- ad 线束和网络
ad 线束和通道复用会遇到网络无法更新的pcb的异常, 就算,我们把网络作用范围调整到页,电源全局仍然会失败,通过查找原因 尽量网络标签不同.稍微更改就可以 比如 sda1,sda1s不要一样
- Cmake用法
目录 1,Cmake introduce 1.1 常用的目录结构 2,CMakeLists.txt文件的写法 Cmake 常用命令 Scripting Commands set include Pro ...
- Web开发——Photoshop(PSD格式截取)
Step1 将截取到的图片,存储为Web所用格式. Step2 在右上角选择存储格式为:PNG-24(PNG-8可能会出现白边).
- python基础之类的多态与多态性
原文链接:https://www.cnblogs.com/luchuangao/p/6739557.html 很多人喜欢将多态与多态性二者混为一谈,然后百思不得其解,其实只要分开看,就会很明朗. 一 ...