Javascript 根據固定長度分詞[簡單分詞]
效果
待分字符:這是一個要進行分詞的字符串呀。
//2個單詞分詞
var res= ["這是", "是一", "一個", "個要", "要進", "進行", "行分", "分詞", "詞的", "的字", "字符", "符串", "串呀", "呀。", "。", ""]
//3個單詞分詞
var res=["這是一", "是一個", "一個要", "個要進", "要進行", "進行分", "行分詞", "分詞的", "詞的字", "的字符", "字符串", "符串呀", "串呀。", "呀。", "。"]
//4個單詞分詞
var res=["這是一個", "是一個要", "一個要進", "個要進行", "要進行分", "進行分詞", "行分詞的", "分詞的字", "詞的字符", "的字符串", "字符串呀", "符串呀。", "串呀。", "呀。", "。", ""]
//5個單詞分詞
var res= ["這是一個要", "是一個要進", "一個要進行", "個要進行分", "要進行分詞", "進行分詞的", "行分詞的字", "分詞的字符", "詞的字符串", "的字符串呀", "字符串呀。", "符串呀。", "串呀。", "呀。", "。"]
存在問題
:在最後分不盡的字符會出現小於固定長度的字符
代碼
const getMsgFiled = function(msg, len) {
var str = [];
if (msg.length < 2) {
return [msg];
}
var fn = function(len, msg) {
var str = [];
for (var i = len; i < msg.length + len; i += len) {
for (var j = 0; j < len; j++) {
console.log(len, i, j, j + len, j, j, j + len);
str[str.length] = i + j > msg.length ? msg.substring(i + j - len) : msg.substring(i + j - len, i + j);
}
}
return str;
}
return fn(len, msg);
}
用法
getMsgFiled('這是一個要進行分詞的字符串呀。',2)
getMsgFiled('這是一個要進行分詞的字符串呀。',3)
getMsgFiled('這是一個要進行分詞的字符串呀。',4)
getMsgFiled('這是一個要進行分詞的字符串呀。',5)