JS删除String里某个字符的方法
关于JS删除String里的字符的方法,一般使用replace()方法。但是这个方法只会删除一次,如果需要将string里的所以字符都删除就要用到正则。
|
1
2
3
4
|
var str = "abcdaabbssaaa";var reg = new RegExp("a","g");var a = str.replace(reg,"");console.log(a); |
这里用 new RegExp()这个方法创建正则,第一个参数“a”指定了正则表达式的模式或其他正则表达式。后一个参数是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。
如果打印reg的结果是: /a/g 。
还有一种比较取巧的方法,就是分割成数组,再重新拼接成新的字符串。
|
1
2
3
|
var str = "abcdaabbssaaa";var a = str.split("a").join("");console.log(a); |
我测试了一下这两种方式的性能,选取了一个长度为133的字符串,其中要删除的字符有28个,两种方法的用时如下表:
| 使用正则 | 分割成数组 |
| 11.674ms | 6.569ms |
| 8.683ms | 6.727ms |
| 5.802ms | 12.309ms |
| 4.492ms | 8.456ms |
| 3.921ms | 6.481ms |
| 3.766ms | 4.275ms |
| 6.472ms | 2.985ms |
| 14.631ms | 15.029ms |
| 6.985ms | 8.523ms |
| 9.835ms | 7.063ms |
使用正则删除字符的,最慢14.631ms,最快3.766ms,平均7.6261ms
使用第二种方法,最慢15.029ms,最快2.985ms,平均7.8417ms
对比发现,还是用正则快一点吧~~而且感觉高大上~~~
JS删除String里某个字符的方法的更多相关文章
- js模仿jquery里的几个方法parent, parentUntil, children
有时工作需要, 也是接着上一章的方法, 用js模仿jquery里的几个方法parent, parentUntil, children. function parent(node){ return no ...
- js删除数组里指定的元素
js删除数组里指定的元素 首先可以给JS的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: Array.prototype.indexOf = function(val) { ...
- JS 删除字符串最后一个字符的几种方法
字符串:string s = "1,2,3,4,5," 目标:删除最后一个 "," 方法:1.用的最多的是Substring,这个也是我一直用的 s=s.Sub ...
- Js删除数组重复元素的多种方法
js对数组元素去重有很多种处理的方法,本篇文章中为网络资源整理,当然每个方法我都去实现了:写下来的目的是希望自己活学活用,下次遇到问题后方便解决. 第一种 function oSort(arr){ v ...
- jquery 删除字符串最后一个字符的方法
字符串:var s = "1,2,3,4,5," 目标:删除最后一个 "," 方法: s=s.substring(0,s.Length-1): 字符串:var ...
- js删除数组里的某个元素
首先可以给js的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: Array.prototype.indexOf = function(val) { for (var i = ...
- js删除对象里的某一个属性
var a={"id":1,"name":"danlis"}; //添加属性 a.age=18; console.log(a); //结果: ...
- js模仿jquery里的几个方法next, pre, nextAll, preAll
/*siblings函数, 选取node的所有兄弟节点*/ function siblings(node){ if(node.nodeType === 1){ node.flag = true; // ...
- PHP程序中删除字符串最后一个字符的三种方法
常见的语法格式: foreach ($arr as $key => $value) {$arr_str = $arr['x_id'] . ',' . $arr_str;} 假设字符数组 $arr ...
随机推荐
- [转]linux各文件夹介绍
本文来自linux各文件夹的作用的一个精简版,作为个人使用笔记. 下面简单看下linux下的文件结构,看看每个文件夹都是干吗用的? /bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管 ...
- VirtualBox中CentOS遇到的问题
centos7 安装步骤 https://www.cnblogs.com/hihtml5/p/8217062.html 静态ip设置 TYPE="Ethernet" PROXY_M ...
- 20155303 实验三 敏捷开发与XP实践
20155303 实验三 敏捷开发与XP实践 目录 一.编码标准 任务一:在IDEA中使用工具(Code->Reformate Code)格式化代码,并学习Code菜单的功能 二.敏捷开发与XP ...
- MVC常用特性使用
简介 在以前的文章中,我和大家讨论如何用SingalR和数据库通知来完成一个消息监控应用. 在上一篇文章中,我介绍了如何在MVC中对MongoDB进行CRUD操作. 今天,我将继续介绍一些在开发中非常 ...
- The Smallest Difference
Given two array of integers(the first array is array A, the second array is arrayB), now we are goin ...
- ispoweroftwo 判断2的次幂【转】
转自:https://www.cnblogs.com/troublelost/p/5236391.html 首先结果是: public bool IsPowerOfTwo(int n) { if(n& ...
- hdu 4348 To the moon (主席树)
版权声明:本文为博主原创文章,未经博主允许不得转载. hdu 4348 题意: 一个长度为n的数组,4种操作 : (1)C l r d:区间[l,r]中的数都加1,同时当前的时间戳加1 . (2)Q ...
- thymeleaf : EL1050E The arguments (...) for the constructor call are missing
<a href="list.html" th:href="${#strings.replace(new.href,'{page}',1)}" >MO ...
- Canvas 3D球形文字云动画特效
Canvas 3D球形文字云动画特效 效果图: 代码如下,复制即可使用: (适用浏览器:360.FireFox.Chrome.Opera.傲游.搜狗.世界之窗. 不支持Safari.IE8及以下浏览器 ...
- Java 组合
组合: 在新类中产生现有类的对象,由于新的类是由现有类的对象所组成,所以这种方法称为组合 组合和继承都允许在新的类中放置对象,组合时显示的这样做,而继承则是隐式的这样做 组合技术通常用于想在新类中使用 ...