求一正则。。
ZXX-XX-XXXXWWW   
 XX部分为数字   WWW部分可有可无,是中文也可能是字母但是一定不是数字   
 Z12-12-1234小张
------解决方案--------------------Z\d{2}-\d{2}-d{2}[a-zA-Z]*?   
 或者   
 Z\d{2}-\d{2}-d{2}
------解决方案--------------------前面XX数字位数是否固定,用在哪里,验证控件还是程序里,什么目的,匹配还是提取     
 Z\d+-\d+-\d+\D+
------解决方案--------------------后面可有可无,应该这样   
 Z\d+-\d+-\d+(?:\D+)?   
 数字位数固定,这样   
 Z\d{2}-\d{2}-\d{4}(?:\D+)?   
 如果是用在验证控件里或是在程序里验证规则   
 ^Z\d{2}-\d{2}-\d{4}(?:\D+)?$   
------解决方案--------------------估计是这样 
 @ "^Z\d{2}-\d{2}-\d{4}\D*$ "
------解决方案--------------------try   
  <form name=loginform>  
  <input type= "text " name= "E " size= "20 " onMouseOut= "check() ">  
  </form>  
  <script language=JavaScript>  
 function check(str) 
 { 
 var reg = /^Z\d{2}-\d{2}-\d{4}\D*$/; 
 if(!reg.test(str)) 
 { 
 alert( "不合法! "); 
 } 
 } 
 check(document.loginform.E.value) 
  </script>      
 后面写的延续了最开始的思路了,应该是按伴水这种写法好一些
------解决方案--------------------或者按你原来的写法,在 </script> 前面加一行 
 check(); 
 你只定义了函数,并没有调用,所以不会弹出警告
------解决方案--------------------javascript中是“/”不是“ "”,vbscript才是“ "” 
 啥也不说了,看效果吧   
  <form name=loginform>  
  <input type= "text " name= "E " size= "20 " onMouseOut= "check() ">  
  </form>  
  <script language=JavaScript>  
 function check() 
 { 
   var resss = new RegExp(/^Z\d{2}-\d{2}-\d{4}\D*$/); 
   if(!resss.test(document.loginform.E.value)) 
   { 
     alert(document.loginform.E.value); 
   } 
 } 
  </script>
------解决方案--------------------哦,没注意到前面的,用下面的试试,我这里测试通过   
  <form name=loginform>  
  <input type= "text " name= "E " size= "20 " onMouseOut= "check() ">  
  </form>  
  <script language=JavaScript>  
 function check() 
 { 
 var reg = /^Z\d{2}-\d{2}-\d{4}\D*$/; 
 if(!reg.test(document.loginform.E.value)) 
 { 
 alert( "不合法! "); 
 } 
 } 
 check() 
  </script>      
 另外我觉得把onMouseOut= "check() "换成onBlur= "check() "会好些,onMouseOut验证有些不人性化