<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML> 
<HEAD> 
<TITLE></TITLE>
<script>
function init(allowedLength){
var content = document.getElementById("div1").innerHTML;
var flag = false;
while(content.replace(/[\x00-\xff]/g,"xx").length > allowedLength){
content = content.substring(0,content.length - 1);
flag = true;
}
if(flag){
content += "...";
}
document.getElementById("div1").innerHTML = content;

}
</script>
</HEAD> <BODY onload="init(20)">
<div id="div1">很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长</div>
</BODY> 
</HTML> 

解决方案 »

  1.   

    上面的正则写错了,原意是把汉字当做两个字符计算
    应该是 /[^\x00-\xff]/g  ,少了一个 ^
      

  2.   

    <HTML> 
    <HEAD> 
    <TITLE></TITLE>
    </HEAD> 
    <BODY>
    <div id="div1" style="width:150px;height:50px;border:1 solid red;overflow:hidden;text-overflow:ellipsis">
    <nobr>很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很很长很长很长很长很长很长很长很长很长很长很长很长很长很长</nobr>
    </div>
    </BODY> 
    </HTML> 
      

  3.   

    如果只用css的话兼容ff貌似不能