<script language="javascript">
function issl(txt) //折率
{
var filter=/^[\+-]?[1-9]?\d*(\.\d{1,2})?$/;
if(filter.test(txt.value))return true;
else
{
alert("要求是输入数字,小数点和正负号,小数电后最多两位");
txt.value='';
//txt.focus();
return false;
}
}
</script>
<input type="text" onblur="issl(this)">

解决方案 »

  1.   

    都不是很对,try: issl("01.11")
    try:
    var filter=/^[\+-]?(0?|[1-9]\d+)(\.\d{1,2})?$/;
      

  2.   

    最伟大的、光荣的、正确的验证数字串的正则表达式来了:
    oNumPattern = /^(|[+-]?(0|([1-9]\d*)|((0|([1-9]\d*))?\.\d{1,2})){1,1})$/;
      不好懂?那就对了!Perl被称为"只写"语言(不可读),大概就是因为晦涩难懂的正则表达式!
      楼上各位都不是十分正确:
      1。[]中的特殊字符,已不具有特殊意义,不必加\;
      2.接受单个"+"、"-"或有前导0的数据(用户输入了前导0、及有可能是输入错误,因此不应接受,让其更正)等...
      3。本人构造的正则表达式拒绝:+、-、0x、0x.xx及其他非数字字符串;
    接受:空串、.xx 0.xx 及其他正确的数字串。  supere给我点银子吧!!!