要想实现一个功能,2篇英文文章对比。我的想法是按单词对比,先把两篇英文文章拆分成单词保存,然后用for循环进行对比,第一步就被卡住,我用的是两个textarea,在里面输入不同的内容,然后点击test()方法。首先如何把textarea里的文章的内容转为单词保存。接下来希望大家能提供一个更好的,更快的匹配算法。<form method="POST">
<textarea id="txtName1" name="txtName1" rows="20" cols="50"></textarea>
<textarea id="txtName2" name="txtName1" rows="20" cols="50"></textarea>
<input type="button" onclick="return test()"/>
</form>
<script type="text/javascript">
var differentStyle={
remove:'yellow',
Add :'red',
update :'blue'
};
function test(){
//拆分英文文章
//分析两个的不同
}
</script>
<textarea id="txtName1" name="txtName1" rows="20" cols="50"></textarea>
<textarea id="txtName2" name="txtName1" rows="20" cols="50"></textarea>
<input type="button" onclick="return test()"/>
</form>
<script type="text/javascript">
var differentStyle={
remove:'yellow',
Add :'red',
update :'blue'
};
function test(){
//拆分英文文章
//分析两个的不同
}
</script>
那我来出个主意,不知合不合适我觉得可以先把段分为句子,再将句子分为词好一些吧就是设计一个二维数组,第一维都是句子,然后第二位就是句子分隔后剩下的词了。这样计数比较方便,你不至于出现从某句的一半到另一句的一半这样的标示至于效率,都差不多了,二维数组比较好index.
str.split(/\s+/);//返回单词数组
php 有正则表达式去查查preg_split
具体的讲就是可以有一组分隔号,放在pattern里面,比如叹号,句号,问号等等,通过找到分隔号后就可以切断存在数组里分单词其实更加简单,基本就是空格了如何写那个pattern有点学问,网上很多资料可以看看
如果是有一点不一样就算不一样的话,你直接这样就是了,还想别的什么呢:
if(document.getElementById("txtName1").value==document.getElementById("txtName2").value)
{alert("相同");}
else{alert("不同");}
<textarea id="txtName1" name="txtName1" rows="20" cols="50"></textarea>
<textarea id="txtName2" name="txtName1" rows="20" cols="50"></textarea>
<input type="button" onclick="alert(test());"/>
</form><script type="text/javascript">
function test(){
if(document.getElementById("txtName1").value.indexOf(document.getElementById("txtName2").value)>-1 ||document.getElementById("txtName2").value.indexOf(document.getElementById("txtName1").value)>-1) {return "包含";}
if(document.getElementById("txtName1").value==document.getElementById("txtName2").value)
{ return "相同";}
else{ return "不同";}
}
</script>
<textarea id="txtName1" name="txtName1" rows="20" cols="50"></textarea>
<textarea id="txtName2" name="txtName1" rows="20" cols="50"></textarea>
<input type="button" onclick="alert(test());"/>
</form><script type="text/javascript">
function test(){
if(document.getElementById("txtName1").value==document.getElementById("txtName2").value) { return "相同";}
if(document.getElementById("txtName1").value.indexOf(document.getElementById("txtName2").value)>-1 ||document.getElementById("txtName2").value.indexOf(document.getElementById("txtName1").value)>-1) {return "包含";}
return "不同";
}
</script>
{alert("相同");}
else{alert("不同");}