最近项目中遇到一个js判断:允许输入正负数、小数,并且输入值有范围限制,而且相互之间有大小比较。
?
function checkNumber(id){ var eValue = document.getElementById(id).value; //alert(value); if (/^(\+|-)?\d+($|\.\d+$)/.test(eValue)){//数字判断 if(id == 'West' || id == 'East'){ //alert(value); if((-180 <= eValue) && (eValue <= 180)){//范围判断 return true; }else{ alert("The west/east coordinate should be in -180 to 180"); document.getElementById(id).value=""; document.getElementById(id).focus(); return false; } }else if(id == 'North' || id == 'South'){ //alert(value); if((-90 <= eValue) && (eValue <= 90)){ return true; }else{ alert("The north/south coordinate should be in -90 to 90"); document.getElementById(id).value=""; document.getElementById(id).focus(); return false; } } }else { if(document.getElementById(id).value != ""){ alert(id +" Numbers only!"); document.getElementById(id).value=""; return false; } } } <tr> <td class="TDstyle01" align="center">North-South: <input type="text" id="North-South" name="NorthSouth" style='width:80px' onBlur="checkNumber('North-South')" > </td> </tr> <tr> <td class="TDstyle01" align="left">East-West:   <input type="text" id="East-West" name="EastWest" style='width:80px' onBlur="checkNumber('East-West')"> </td> </tr>
?