<SCRIPT LANGUAGE="JavaScript">
str = "st_rstrreplacerngjxoeui_n_cerngjxoeui";
<!--
arr = str.split("_");
for(i=0;i<arr.length;i++)
{
   if(arr[i].length>8)
arr[i] = arr[i].replace(/(.{8})/g,"$1_");
}
str = arr.join("_");
alert(str);
//-->
</SCRIPT>

解决方案 »

  1.   

    没有ice_berg16(寻梦的稻草人)先生写的好
    ----------------------------------------------------------------------
    str = "st_rstrreplacerngjxoeui_n_cerngjxoeui";
    var k=0,tmpStr="";
    for(var i=0;i<str.length;i++)
    {
    if(str.charAt(i)=="_")
    k=0;
    else{
    if(k==8)
    {
    tmpStr+="_";
    k=0;
    }
    k++;
    }
    tmpStr+=str.charAt(i);
    }
    alert(tmpStr)
      

  2.   

    var str = "st_rstrreplacerngjxoeui_n_cerngjxoeui";
    str = str.replace(/([a-z]{8})/gi, "$1_");根据你字符允许的情况修改[a-z],现在是只允许字母,如果还有数字,就是[a-z0-9]了。
      

  3.   

    用正则表达.<script>
    var text="st_rstrreplacerngjxoeui_n_cerngjxoeui";
    function RegBao(str)
    {
        str = str.replace(/([^_]{8})/g,"$1_")
        return str;
    }
    alert(RegBao(text))
    </script>