一、起因:
数据库里的标签是以字符串存储的:
示例:
可能以逗号分隔:
小学数学,语文,英语
或者也可能以顿号分隔:
小学、初中、高中、
现在我想要实现字符串分割,使用分割后的字符串做标签,所以需要进行字符串处理。
二、思路:
JS中有字符串处理函数split,他可以把字符串分割后返回一个数组,适合我这种场景,因为分割后的字符串数组刚好用来当标签。
split,需要传入一个正则表达式进行匹配,所以使用split刚好解决我的问题。
三、解决:
//斜杠,反斜杠,空格,乘号,英文逗号,中文逗号,中文括号,中文分号,连字符,加号,【,】,顿号,下划线,中文冒号,|,[,],& //还有乘号“×”,而非“xX”【和字母不同】 //英文分号,英文冒号 let str = '你好,啦啦啦,小学数学,语文,英语、hhh、哦哦哦' let b = str.split(/[+|\\|/|,| |(|)|*|×|,|(|)|;|;|\-|【|】|、|:|:|\|\[|\]|&]+/) console.log(b.filter(function(curV){//filter过滤非空字符, return curV.trim()!='' })) 运行结果:[ '你好', '啦啦啦', '小学数学', '语文', '英语', '哦哦哦' ]
若不使用filter输出的结果:
[
'你好', '啦啦啦', '小学数学',
'语文', '英语', '',
'', '', '',
'哦哦哦'
]