<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>Option中的空格测试 </title> 
<script language="javascript"> 
window.onload  = function(){ 
var str = document.getElementById("s").options[0].innerHTML; 
var r = str.match(/&nbsp;/g)?str.match(/&nbsp;/g).length:0; 
alert("Option中的空格数为:" + r); 

</script> 
</head> 
<body> 
<select id="s"> 
  <option  value='0'>&nbsp;&nbsp;选项</option> 
</select> 
</body> 
</html>

解决方案 »

  1.   

    首先,在IE中,&nbsp; 与 空格 并不是一个字符,所以你用/s来匹配,肯定是不行的
    你可以在IE中试试:
    var str = document.getElementById("s").options[0].text; 
    prompt("",escape(str.substring(0,1)));
    prompt("",escape(" "));而如果在option中用多个空格,取出来只会是一个空格。
      

  2.   

    我说的“用多个空格”,不是指&nbsp;
    比如:
    <option>  aaa  </option>
    var str = document.getElementById("s").options[0].text; 
    prompt("",escape(str)); 这时你可以看到只会有一个空格。另外,你的目的,可以先替换,
    比如:
    var str = document.getElementById("s").options[0].text; 
    str = str.replace(0xA0," ");
    var r = str.match(/\s/g)?str.match(/\s/g).length:0; 
    alert("Option中的空格数为:" + r); 这样就可以实现你的目的了。