记录一个javascript字符串处理的问题

这一天下班,技术QQ群里的大神提出了一个问题,带着问题去思考。

? '---9890.999008-555555-55555555----' 对于这样的字符串,如何把其中的字符 '-' (除了第一个以外的) 都删掉

其实要实现很简单,只不过是要权衡利弊罢了。

实践中学习

可以通过MDN Web Docs 了解javascript中的RegExp。

自己写了一个方法去完成:

 console.log('---9890.999008-555555-55555555----'.match(/[0-9-.]/g).map((v,i,a)=>{
if(/[-]/.exec('---9890.999008-555555-55555555----').index !==i){
if(/[^-]/.test(v)){
return v;
}else{
return ''; }
}else{
return v;
} }).join(''));

另外一种 用 replace 实现的方法,由于之前对这个方法不熟悉,第一遍甚至都没看懂,有点尴尬。

 var str= "---9890.999008-555555-55555555----";
str = str.replace(/(\-).*(\1)/g,function($1,$2){
console.log($1);
console.log($2);
$1 = $2+$1.substring(1).replace(new RegExp($2,'g'),'');
return $1;
}); console.log(str);

step_by_step_记录一个javascript字符串处理问题的更多相关文章

  1. 收藏一个JavaScript字符串连接方法

    最近在看一同事写的代码时,有一个字符串用了一堆"+"号,看了半天没明天到底会输出什么样的内容,就想到用字符串连接的类,把以前的方法写成了类的方式,方便调用.下面的类支持实例调用和静 ...

  2. 每天一个JavaScript实例-递归实现反转数组字符串

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  3. JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串;JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象

    JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串:JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象

  4. 关于 JavaScript 字符串的一个小知识

    说起字符串,我们再熟悉不过了.接触编程的第一个经典任务就是输出字符串:Hello, world.但是你知道 JavaScript 字符串在计算机里是怎么表示的吗? 最简单直观但不太准确的的理解就是,字 ...

  5. JavaScript 字符串实用常操纪要

    JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...

  6. JavaScript 字符串常用操作纪要

    JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...

  7. JavaScript 字符串操作

    JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...

  8. 创建你的第一个JavaScript库

    是否曾对Mootools的魔力感到惊奇?是否有想知道Dojo如何做到那样的?是否对jQuery感到好奇?在这个教程中,我们将了解它们背后的东西并且动手创建一个超级简单的你最喜欢的库. 我们其乎每天都在 ...

  9. JavaScript 字符串常用操作

    JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...

随机推荐

  1. JAVA Override和Overload的含义去区别

    java中的继承,方法覆盖(重写)override与方法的重载overload的区别 1.方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现,重写(Overr ...

  2. xampp启动MySQL出现Error: MySQL shutdown unexpectedly.

    20175227张雪莹 2018-2019-2 <Java程序设计> xampp启动MySQL出现Error: MySQL shutdown unexpectedly. 问题 本周在学习教 ...

  3. 我的第二本译作《精通OpenStack》上架啦:前言、目录和样章

    1. 前言 今天,随着新功能和子项目的增加,OpenStack已成为一个不断扩展的大型开源项目.随着数以百计大型企业采用并不断为OpenStack生态系统做出贡献,OpenStack必将成为下一代私有 ...

  4. scrapy实战之scrapyrt的使用

    scrapyrt为scrapy提供了一个http接口,有了它,我们不用再执行命令,而是直接请求一个http接口来启动项目,如果项目是部署在远程的,会比较方便. 1.安装: pip install sc ...

  5. 填坑:Java 中的日期转换

    我们之前讨论过时间,在Java 中有一些方法会出现横线?比如Date 过期方法. 参考文章:知识点:java一些方法会有横线?以Date 过期方法为例 Java中的日期和时间处理方法 Date类(官方 ...

  6. 无外接键盘安装 raspberry pi 3B+ 安装系统

    从官网介绍看,当前raspbian和以前大家的记录略有不同,老的博客资料基本都是介绍下载raspbian,但现在raspbian已经不再维护镜像, raspbian系统开始由官方 pi foundat ...

  7. Galaxy2D Game Engine 4.2 开发版发布

    Update: ◆删除Graph_GetRenderTarget()函数,添加Graph_CopyBackBuffer()/Graph_CopyRanderTarget()函数 ◆Graph_EndS ...

  8. [SDOI2013]森林 (启发式合并)

    /* 树上主席树能够求出链上第k大, 然后启发式合并直接重构就好了 卡常数就卡呗 反正我就暴力重构了!! */ #include<cstdio> #include<algorithm ...

  9. Day74

    Django框架之视图函数(day74)一 作业相关 urlpatterns = [   url(r'^$',views.book),  #根路径,响应到指定视图函数:   .....   url(r ...

  10. Oracle表空间不足;查询表空间使用率(unable to extend lob segment SYS_LOB0000076749C00006$$ by 8192 in tablespace USERS)

    查询表空间对应地址 *),) total_space from dba_data_files order by tablespace_name; //方案一:修改表空间大小(32000可改为想要的数值 ...