<html>
<head>
<script type = "text/javascript" src = "../jquery-1.5.2.js"></script>
<script type = "text/javascript">
$(function(){
var re = /[abc]/i;
var str1 = "abcdefg";
$("div#d1").html(re.exec(str1));
});

</script>
</head>
<body>
<div id = "d1"></div>
</body>
</html>
我想把正则的结果输出到div里。为什么div里啥都没显示呢?
$("div#d1").html(re.exec(str1));这有什么错误吗?

解决方案 »

  1.   

     $("div#d1").html 方法期望接收一个字符串 你传给它一个数组。  re.exec返回一个数组。
      

  2.   

    var re = /[abc]/ig; //这里先加个参数g,如果不用下面的while则不需要
            var str1 = "abcdefg";
         
            var temp;
            while(temp = re.exec(str1)){
                alert(temp[0]); // 这里temp 是一个捕获组,第一个元素是匹配到的字符串,后面的元素是捕获组,没有捕获组,数组长度应该就为了1了吧
            }
            // 如果只需要第一个值,则直接
            temp =re.exec(str1);
            if(temp){
                alert(temp[0]);
            }
      

  3.   

     这里temp 是一个数组
      

  4.   


    <html>
    <head>
    <script type = "text/javascript" src = "../jquery-1.5.2.js"></script>
    <script type = "text/javascript">
        $(function(){
            var re = /[abc]/i;
            var str1 = "abcdefg";
             $("#d1").html((re.exec(str1)).toString());
        });
            
            </script>
    </head>
    <body>
    <div id = "d1"></div>
    </body>
    </html>