需要修改的有两个:
1、这个js会将一段话/词给拆分开了,会将第一个字逐渐组合后面的字,然后又用第二个字再来组合后面的字如此反复。
这里想让它在第一个字组合到最后一个字后就停止组合,像下图红框那样就停止再次组合,也就是第二个字就不再组合后面的字。
2、现在这个是以输入框的形式需要点击才能进行拆分,怎么修改成根据变量来自动拆分不在需要点击。
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>暴力拆词工具</title>
<script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
</head>
<body>
<!-- 点击拆分 -->
<div>
<input type="text" id="keyword" value="自动拆分词语" />
<button onclick="example()">拆词</button>
</div>
<!-- 根据变量拆分,前面的点击拆分将取消 -->
<div>
<p>这后续将会是一个变量</p>
</div>
<div id="content">
拆分后显示:<br />
<span id = 'counters'></span>
</div>
<script>
function example(){
//获取输入框
var keyword = $("#keyword");
//获取内容显示区域
var contents = $("#counters");
//获取输入框的值
var keywordval = keyword.val();
//调用拆分方法
var sount=ParsingWords(keywordval);
//写出值
contents.html(sount);
}
function ParsingWords(str){
var sount='';
//判断是否为单字符语种
if(/[\u4e00-\u9fa5]/.test(str)){
var date = str.split(',');
for(var d = 0;d<date.length;d++){
//alert(date[d].length)
for(var i=0 ; i<=date[d].length ;i++){
for(var j=i ; j<=date[d].length ;j++){
if(date[d].slice(i,j).length==0){
continue;
}
sount+=date[d].slice(i,j)+'/';
}
}
}
}else{
var date = str.split(',');
for(var d = 0;d<date.length;d++){
var fz = date[d].split(' ');
//alert(fz);
for(var i=0 ; i<fz.length ;i++){
for(var j=i ; j<fz.length ;j++){
var ls = ''
for(var k=i;k<=j;k++){
ls+=fz[k]+' ';
}
sount+=ls.trim()+'/'
}
}
}
}
return sount
}
</script>
</body>
</html>
```
函数放在window的onload函数里执行,判断当counters的长度等于原字符串的长度时,结束程序