一、起因:
數據庫里的標簽是以字符串存儲的:
示例:
可能以逗號分隔:
小學數學,語文,英語
或者也可能以頓號分隔:
小學、初中、高中、
現在我想要實現字符串分割,使用分割后的字符串做標簽,所以需要進行字符串處理。
二、思路:
JS中有字符串處理函數split,他可以把字符串分割后返回一個數組,適合我這種場景,因為分割后的字符串數組剛好用來當標簽。
split,需要傳入一個正則表達式進行匹配,所以使用split剛好解決我的問題。
三、解決:
//斜杠,反斜杠,空格,乘號,英文逗號,中文逗號,中文括號,中文分號,連字符,加號,【,】,頓號,下划線,中文冒號,|,[,],& //還有乘號“×”,而非“xX”【和字母不同】 //英文分號,英文冒號 let str = '你好,啦啦啦,小學數學,語文,英語、hhh、哦哦哦' let b = str.split(/[+|\\\\|/|,| |(|)|*|×|,|(|)|;|;|\\-|【|】|、|:|:|\\|\\[|\\]|&]+/) console.log(b.filter(function(curV){//filter過濾非空字符, return curV.trim()!='' })) 運行結果:[ '你好', '啦啦啦', '小學數學', '語文', '英語', '哦哦哦' ]
若不使用filter輸出的結果:
[
'你好', '啦啦啦', '小學數學',
'語文', '英語', '',
'', '', '',
'哦哦哦'
]