check number js

本文介绍了一段JavaScript脚本,该脚本用于验证和格式化用户输入的数字数据。其中包括检查输入是否符合规定的整数和小数位数限制,并确保数值格式正确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//==============================================
// check TextBox
//==============================================
function checkRealChar(event, id_hidden, integer_digit, decimal_digit){//onkeypress 当键盘被按下后又松开时执行脚本
var commitFlg = document.getElementById("commitFlg");
if (commitFlg.value == 1) {
event.returnValue = false;
return event.returnValue;
}

var maxLength = integer_digit + decimal_digit + 1;
event.returnValue=false;
var hiddenObject = document.getElementById(id_hidden);
var range = document.selection.createRange();
var ch_text = range.text;

if (hiddenObject != null && (removeComma(event.srcElement.value).length > maxLength)
&& ch_text != null && ch_text.length == 0) {
event.returnValue = false;
}else {
if(event.keyCode>47 && event.keyCode <58) {
event.returnValue=true;
} else if(event.srcElement.value.indexOf('-')!=-1){
event.returnValue=false;
}else if(event.keyCode==46){
if (hiddenObject.value.length == (maxLength - 1)) {
event.returnValue=false;
}else if(event.srcElement.value.indexOf('.')!=-1){
event.returnValue=false;
}else {
event.returnValue=true;
}
}
}
return event.returnValue;
}

function modifyRealNumber(event,id_hidden, id_text, integer_digit, decimal_digit){//onkeyup 当键盘被松开时执行脚本

var maxLength = integer_digit + decimal_digit + 1;

if((event.keyCode==37)||(event.keyCode==39))
return true;
if((event.keyCode > 47 && event.keyCode < 58) || (event.keyCode > 95 && event.keyCode < 106)
|| event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 189
|| event.keyCode == 190 || event.keyCode == 110){

var dummyNumberObj = document.getElementById(id_text);

var realNumberObj;
if (id_hidden != "") {
realNumberObj = document.getElementById(id_hidden);
}

if (event.keyCode == 190 || event.keyCode == 110){
if(dummyNumberObj.value.indexOf('.')==0){
dummyNumberObj.value = dummyNumberObj.value.substring(dummyNumberObj.value.indexOf('.')+1);
}else if (decimal_digit == 0){
dummyNumberObj.value = dummyNumberObj.value.replace(/[.]/g,"");
}
}

dummyNumberObj.value = removeComma(dummyNumberObj.value) ;
var oldValue = dummyNumberObj.value;

var decimalIndex = oldValue.indexOf('.');
if (decimalIndex != -1){
integerNum = oldValue.substring(0,decimalIndex);
}else {
integerNum = oldValue;
}

if(integerNum.length > integer_digit){
integerNum = integerNum.substring(0,integer_digit);
}

dummyNumberObj.value = appendComma(integerNum) ;

realNumberObj.value = integerNum;

var dotValue = 0;
if (oldValue.indexOf('.')!=-1){
dotValue = oldValue.substring(oldValue.indexOf('.')+1);
if (decimal_digit != -1 && dotValue.length > decimal_digit){
dotValue = dotValue.substring(0,decimal_digit);
}
realNumberObj.value = realNumberObj.value + "." + dotValue;
dummyNumberObj.value = dummyNumberObj.value + "." + dotValue;
}

}

}

function modifyRealNumByCopy(id_hidden, id_text, integer_digit, decimal_digit){
var maxLength = integer_digit + decimal_digit + 1;
var dummyNumberObj = document.getElementById(id_text);

var realNumberObj;
if (id_hidden != "") {
realNumberObj = document.getElementById(id_hidden);
}

if (maxLength == null || maxLength == "") {
maxLength = 15;
}

var oldval = removeComma(dummyNumberObj.value);
//if(oldval.length > maxLength){
// dummyNumberObj.value = oldval.substring(0,maxLength);
//}

oldval = removeComma(dummyNumberObj.value);
var dotValue = 0;
if (oldval.indexOf('.') != -1){
dummyNumberObj.value = oldval.substring(0,oldval.indexOf('.'));
dotValue = oldval.substring(oldval.indexOf('.')+1);
}

if(removeComma(dummyNumberObj.value).length > integer_digit){
var dummyNumber = removeZero(removeComma(dummyNumberObj.value));
dummyNumberObj.value = removeComma(dummyNumber).substring(0,integer_digit);
}

dummyNumberObj.value = appendComma(dummyNumberObj.value, "true");
if (realNumberObj != null) {
realNumberObj.value = removeComma( dummyNumberObj.value );
}
try {
var errorFlg = false;
var realNumber = realNumberObj.value;

if(!checkNumber(realNumber)){
dummyNumberObj.value = '';
realNumberObj.value = '';
}else{
if (oldval.indexOf('.')!=-1){
if(checkNumber(realNumberObj.value)){
if (integer_digit != -1 && realNumberObj.value > integer_digit){
realNumberObj.value = realNumberObj.value.substring(0,integer_digit);
}
}
if(checkNumber(dotValue)){
if (decimal_digit != -1 && dotValue.length > decimal_digit){
dotValue=dotValue.substring(0,decimal_digit);
}
if (dotValue!=""){
var dotValueTemp = parseFloat("0."+ dotValue);
dotValueTemp = dotValueTemp+"";
dotValue = dotValueTemp.substring(dotValueTemp.indexOf('.')+1);

realNumberObj.value = parseFloat(realNumberObj.value,10);

realNumberObj.value = realNumberObj.value + "." + dotValue;
//realNumberObj.value = parseFloat(realNumberObj.value);

if(realNumberObj.value.indexOf('.') != -1){
var integerTemp = realNumberObj.value.substring(0,realNumberObj.value.indexOf('.'));
var decimalTemp = realNumberObj.value.substring(realNumberObj.value.indexOf('.'),realNumberObj.value.length);
dummyNumberObj.value = appendComma(integerTemp) + decimalTemp;
}
}
}
if(realNumberObj.value == 0){
realNumberObj.value = '';
dummyNumberObj.value = '';
}
}else{
if(realNumberObj.value == 0){
realNumberObj.value = '';
dummyNumberObj.value = '';
}
}
}
}catch(e){
}
}

function appendComma(num, removeZeroFlg){
var srcNumber = new String( num ) ;
if( num == null || srcNumber.length == 0 ){
return num ;
}

if (srcNumber.substring(0, 1) == '-'){
srcNumber = '-' + removeMinus(srcNumber);
var nNum = srcNumber.substring(1);
return '-' + appendComma(nNum, removeZeroFlg)};
else
srcNumber = removeMinus(srcNumber);

if (srcNumber == '-')
return srcNumber;

if (removeZeroFlg == "true") {
num = removeZero(num);
}

var isMinus = false ;
if( num < 0 ){
isMinus = true ;
}

if( ( isMinus && srcNumber.length < 3 ) || (!isMinus && srcNumber.length < 4 )){
return num ;
}

var strValue= removeComma( srcNumber );
if (removeZeroFlg == "true") {
strValue = removeZero(strValue) + "";
}

var m = mod(strValue.length,3);
if (m==0)
m=3
else if (isMinus && m==1)
m=4;
var newValue="";
if (strValue.length>3){
newValue=strValue.substring(0,m)+",";
len=0;
if (m==3)
len=Math.floor((strValue.length)/3)-2
else if (isMinus && m==4)
len=Math.floor((strValue.length)/3)-2
else
len=Math.floor((strValue.length)/3)-1

for (i=0;i<len;i++){
newValue =newValue+strValue.substring(m+i*3,m+(i+1)*3)+",";
}
newValue =newValue+strValue.substring(m+(i)*3);
}else{
newValue=strValue;
}
return newValue;
}

function removeComma( src ){
var orgStr = new String( src ) ;
return orgStr.replace(/[,]/g,"").replace(/[ ]/g,"").replace(/[ ]/g,"");
}

function checkNumber(numberStr){
var regObj = /^\d*$/g;
if(regObj.test(numberStr)){
return true;
}else{
return false;
}
}

function removeZero(num) {
var newNum = "";
var indexReal = 0;
for (var i = 0; i < num.length; i++) {
if (num.charAt(i) != '0') {
break;
}
indexReal++;
}
if (indexReal == num.length) {
newNum = 0;
}else {
newNum = num.substring(indexReal, num.length);
}
return newNum;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值