javascript根据固定长度分词

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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章