普通的包含函数indexOf,我知道,但现在有点特殊——请教下,javascript能不能判断包含某个字符,但是又要考虑到可能会回车,换行,忘记加空格等情况:例如,某个字符包含inform,但是这个字符单词又不是information等其他类似的单词..."AA inform BBCC" true
"AA information BBCC" false
"AAinform BBCC" true
"AA
inform BBCC" true"AA
information BBCC" false
谢谢谢谢...

解决方案 »

  1.   

    就是想判断某个字符包含inform,但是这个字符单词又不是information等其他类似的单词...
    但是又要考虑到再输入inform的时候可能会回车,换行,忘记加空格等情况...所以我觉得自己的方法不够完善:
    var str0 = .....
    var str = str0.toLowerCase().replace(/[\r\n]/g," ");
    if(str.indexOf("inform")>-1){
       alert("true");
    }因为这里str0可能是以下情况,但是要输出不同的结果...
    "AA inform BBCC" true
    "AA information BBCC" false
    "AA.inform BBCC" true
    "AA
    inform BBCC" true"AA
    information BBCC" false"AA.inform information BBCC" ture
      

  2.   

    var array =[
    'AA inform BBCC',
    'AA information BBCC',
    'AAinform BBCC',
    'AAinform BBCC',
    'AA.inform information BBCC'
    ]
    var regex =/inform\b/i
    for(var i = 0 ; i < array.length ; i ++)
    {
        var bool = false;
        array[i] = array[i].replace(/\r\n/,"");
        if(regex.test(array[i])) bool = true
        document.write(array[i]+"&nbsp;&nbsp;&nbsp;"+bool+"</br>");
              
    }
      

  3.   

    var regex =/inform\b/i楼主没说要忽略大小写吧
      

  4.   

    原本是很容易的,比如查找“inform ”就可以了。但你说还要考虑忘记加空格的情况,这个就不好办了,如果它后面忘记加空格,那就和后面的单词连在一起被当作一个新单词而无法区分。除非你把所有含有inform的单词作一个表,然后去逐一排查。这个问题应该重新考虑。
      

  5.   

    我也考虑过把含有inform的单词作一个表的...但是也不是含有表中的单词就一定不可以的,因为可能同时含有表中的单词和inform的....
      

  6.   

    <script type="text/javascript">
    <!-- var array =[
    'AA inform BBCC',
    'AA information BBCC',
    'AA.inform BBCC',
    'AA\ninform BBCC',
    'AA\ninformation BBCC',
    'AA.inform information BBCC'
    ]
    var regex =/\binform\b/
    for(var i = 0 ; i < array.length ; i ++)
    {
        var bool = false;
        array[i] = array[i].replace(/\r\n/,"");
        if(regex.test(array[i])) bool = true
        alert(array[i]+"\n-------------\n"+bool+"");
              
    }
    //-->
    </script>