记录一个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. bzoj5104: Fib数列

    Description Fib数列为1,1,2,3,5,8... 求在Mod10^9+9的意义下,数字N在Fib数列中出现在哪个位置 无解输出-1 Input 一行,一个数字N,N < = 10 ...

  2. 20175227张雪莹 2018-2019-2 《Java程序设计》第八周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第八周学习总结 教材学习内容总结 第十五章 泛型与集合框架 泛型:主要目的是可以建立具有类型安全的集合框架,如链表.散列 ...

  3. C# 生成二维码扫码

    转载 https://www.cnblogs.com/jys509/p/4592539.html 引用ThoughtWorks.QRCode.dll (源代码里有) 1.简单二维码生成及解码代码: / ...

  4. 部署redis4.0-cluster

    一.部署环境 .关闭iptables(firewalld)或添加放行规则 .关闭selinux3.部署redis实例,参考:https://www.cnblogs.com/panwenbin-logs ...

  5. #include 相关问题

    #include <> 和 #include “”的区别是#include <>先从系统默认的搜索路径开始搜索,#include “”是从当前目录开始搜索,如果未搜索到,都会继 ...

  6. jersey 用FastJson替换掉默认的Jackson

    @Bean public ResourceConfig resourceConfig() { ResourceConfig resourceConfig = new ResourceConfig(); ...

  7. 关于python的多行注释,启动新浏览器,循环语句乘法口诀

    1,提问:如何将python写的多行代码改写成注释,进行写下一段代码?这样可以在多个脚本中写东西? 回答:百度了一下,还真有 选中所要注释的代码  CTRL + / 然后所选的代码前面都会出现#,编程 ...

  8. WEB日志分析工具(Webslizer和AWstats)

    https://www.cnblogs.com/xiaowenshu/p/10030139.html#top

  9. 开窗函数over

    select   id,sum(je) over() as je from dt

  10. js 手写 Promise

    /* * pending:初始化成功 * fulfilled:成功 * rejected:失败 * */ function Promise(cback){ this.status = 'pending ...