zoukankan      html  css  js  c++  java
  • JS使用正则匹配字符串去掉多余符号

    一、起因:

    数据库里的标签是以字符串存储的:

    示例:

    可能以逗号分隔:

    小学数学,语文,英语

    或者也可能以顿号分隔:

    小学、初中、高中、

    现在我想要实现字符串分割,使用分割后的字符串做标签,所以需要进行字符串处理。

    二、思路:

    JS中有字符串处理函数split,他可以把字符串分割后返回一个数组,适合我这种场景,因为分割后的字符串数组刚好用来当标签。

    split,需要传入一个正则表达式进行匹配,所以使用split刚好解决我的问题。

    三、解决:

    //斜杠,反斜杠,空格,乘号,英文逗号,中文逗号,中文括号,中文分号,连字符,加号,【,】,顿号,下划线,中文冒号,|,[,],&
    //还有乘号“×”,而非“xX”【和字母不同】
    //英文分号,英文冒号
    
     let str = '你好,啦啦啦,小学数学,语文,英语、hhh、哦哦哦'
     let b = str.split(/[+|\\|/|,| |(|)|*|×|,|(|)|;|;|\-|【|】|、|:|:|\|\[|\]|&]+/)
     console.log(b.filter(function(curV){//filter过滤非空字符,
         return curV.trim()!=''
     }))
    
    运行结果:[ '你好', '啦啦啦', '小学数学', '语文', '英语', '哦哦哦' ]

    若不使用filter输出的结果:
     [
         '你好',  '啦啦啦', '小学数学',
         '语文',  '英语',  '',
         '',    '',    '',
         '哦哦哦'
       ]


    穷则独善其身,达则兼济天下……
  • 相关阅读:
    [手游新项目历程]-36- error: stray ‘357’ in program
    广告学(一)
    VMware的Unity模式
    poj3709
    poj1849
    bzoj2007
    bzoj3209
    bzoj2466,poj1222
    bzoj1016
    bzoj2186
  • 原文地址:https://www.cnblogs.com/hmy-666/p/14644117.html
Copyright © 2011-2022 走看看