javascript代码输出结果让人很迷惑!!代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> 创建脚本块 </TITLE>
</HEAD><BODY>
<script language="JavaScript">
<!--
var myVariable = "Hello there";
var therePlace = myVariable.search("there");
document.write(therePlace);
//-->
</script></BODY>
</HTML>
输出结果应该是therePlace,为什么会是6呢?而我把search("there")改成search("this"),结果怎么会是-1呢?

解决方案 »

  1.   


    你知道search是用来干啥的么?
      

  2.   

    从字符串中寻找指定值的位置,返回数字是正确的,你非要它返回字串,只好自己再写个searchStr()方法了,呵呵
      

  3.   

    search是查找子字符在字符串中的位置,当然返回的是那个结果了啊。
      

  4.   

    查找字符串或出现的位置,一般用indexOf,search()还是用得少
    <script type="text/javascript">var str="Visit W3School!"
    document.write(str.search(/W3School/))</script>
      

  5.   

    search("there") 查找字符串“there”首次出现的位置,
    返回-1 表示 要查找的字符串找不到。
      

  6.   

       search在一个字串对象(string object)中查找关键词字串(规范表达式,regular expression),若匹配(即在目标字串中成功找到关键词)则返回关键词在目标字串中第一次出现的位置序列,反之,如果不匹配,就返回-1。以下示例在目标字串“HELLO WORLD!”中查找字母“L”,返回值为2,因为字母“L”第一次出现时其常规序列排在第三位,而JS从0开始起算,字母“H”序列为0,字母“E”为1,字母“L”当然就是2了:    MyStr="HELLO WORLD!";
        re="L";
        showstr=MyStr.search(re);
        alert(showstr);我们看得出来,search方法只关心有无匹配,一旦找到匹配,就提供返回值,并且立刻中断查找的执行。上例中的目标字串(MyStr)有三个字母“L”,后两个search并不关心,因为条件已经满足,它退出了自身的匹配查找工作。据此原理,当我们只需要验证有无匹配的操作时,用search既简单又高效。以下再给出一个示例,这是一个自定义函数,它使用search方法简捷地完成字符匹配检测操作,若有匹配则将目标字串完整提取出来:    function key_search(re, str){
           echo = (str.search(re)!=-1 ? str : "无匹配");
           return(echo);
        }
      

  7.   


    search()是个方法,如果你要的百度下他的用途,就不会有这样的疑问了。
      

  8.   

    这个 search 方法类似于 java 中字符串的 indexOf(),如果找到了指定字符串,返回对应的下标(从0开始),如果没有找到,则返回 -1