var str = 'a b c';
        var c = "a";
         
        alert(str.search("\\b" + c + "\\b"));将a,b,c都看作一个单词,查找str是否包含c单词,这里的\\b是退格?单词边界?如果退格,怎么理解?

解决方案 »

  1.   

    \b是退格符,按键盘上的Backspace键就是,它也是一个字符,但显示的时候是将光标退回前一个字符,但不会删除光标位置的字符,如果后边有新的字符,将覆盖退回的那个字符,这与我们在文本编器中按Backspace的效果不一样。
      

  2.   

    正则表达式中 \b表示 匹配单词的开始或结束
    http://www.w3school.com.cn/js/jsref_search.asp
      

  3.   

    http://deerchao.net/tutorials/regex/regex.htm
      

  4.   

    在这里,当然不是指退格。想想就知道,那样有什么意义?
    search方法除了普通的字串,还可以是一个正则表达式。而在正则表达式里\b代表单词的分界处(由空格,标点,换行等所有形式组成)。("\\b" + c + "\\b"))的意思就是,查找由C指定的单独的一个词的位置,而不包含单词里包含这个词的情况。楼主的这个例子非常不好,很不直观,改一下就好了var str = 'ac b c d';
      var c = "c";
      alert(str.search("\\b" + c + "\\b"));
      

  5.   

      alert(str.search("\\b" + c + "\\b")); 可以这样定义正则吗????
      

  6.   

    search() 方法不执行全局匹配,它将忽略标志 g。它同时忽略 regexp 的 lastIndex 属性,并且总是从字符串的开始进行检索,这意味着它总是返回 stringObject 的第一个匹配的位置。这得这样写:var str = 'ac b c ddd';
    var c = "c";
    alert(str.search(eval("/\\b" + c + "\\b/")));若想忽略大小写:
    alert(str.search(eval("/\\b" + c + "\\b/i")));
      

  7.   

    ding                              
      

  8.   

    现在这里没有eval,也没有 //
      

  9.   

    一直以来我只知道有两种方法定义,一是//,二是new RegExp
    你说的这种有没有类似的文章,能发来看看吗?