JS使用正则匹配字符串去掉多余符号

时间:2021-04-12 12:45:51   收藏:0   阅读:0

一、起因:

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

示例:

可能以逗号分隔:

小学数学,语文,英语

或者也可能以顿号分隔:

小学、初中、高中、

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

二、思路:

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

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

三、解决:

//斜杠,反斜杠,空格,乘号,英文逗号,中文逗号,中文括号,中文分号,连字符,加号,【,】,顿号,下划线,中文冒号,|,[,],&
//还有乘号“×”,而非“xX”【和字母不同】
//英文分号,英文冒号

 let str = 你好,啦啦啦,小学数学,语文,英语、hhh、哦哦哦
 let b = str.split(/[+|\\\\|/|,| |(|)|*|×|,|(|)|;|;|\\-|【|】|、|:|:|\\|\\[|\\]|&]+/)
 console.log(b.filter(function(curV){//filter过滤非空字符,
     return curV.trim()!=‘‘
 }))

运行结果:[ 你好, 啦啦啦, 小学数学, 语文, 英语, 哦哦哦 ]

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


 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!