要想实现一个功能,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>

解决方案 »

  1.   

    对比包括不包括标点符号呢?是否包括大小写呢?是仅仅比较单词?还是连格式都要比较?比如"This is csdn" 与 "This   is csdn"  是否一样?还有"this is csdn" 与 "This is csdn"  是否一样?
      

  2.   


    那我来出个主意,不知合不合适我觉得可以先把段分为句子,再将句子分为词好一些吧就是设计一个二维数组,第一维都是句子,然后第二位就是句子分隔后剩下的词了。这样计数比较方便,你不至于出现从某句的一半到另一句的一半这样的标示至于效率,都差不多了,二维数组比较好index.
      

  3.   

    //拆分成单词:
    str.split(/\s+/);//返回单词数组
      

  4.   


    php 有正则表达式去查查preg_split
      

  5.   


    具体的讲就是可以有一组分隔号,放在pattern里面,比如叹号,句号,问号等等,通过找到分隔号后就可以切断存在数组里分单词其实更加简单,基本就是空格了如何写那个pattern有点学问,网上很多资料可以看看
      

  6.   

    不知楼主怎么想的.
    如果是有一点不一样就算不一样的话,你直接这样就是了,还想别的什么呢:
    if(document.getElementById("txtName1").value==document.getElementById("txtName2").value)
        {alert("相同");}
    else{alert("不同");}
      

  7.   

    加上部分相包容的情况:<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="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>
      

  8.   

    调整一下顺序:<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="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>
      

  9.   

    if(document.getElementById("txtName1").value==document.getElementById("txtName2").value)
        {alert("相同");}
    else{alert("不同");}