简体   繁体   中英

Regex to check only numbers(negative and positive)

There is an input field on the JSP where users can enter numbers(negative and positive both). I've a JS function that checks on each key up event on the input field is not a number, it should replace it with blank.

var txt = $(elem).val();
if(!(txt.match(/^-?[0-9]*$/))) {    
    $(elem).val(txt.replace(/^-?[0-9]+/g, ''));
  }

My if condition is working fine, but I'm not able to create a regex for replacing.

Edit: question was clarified that only numeric values should be accepted

You could just check that the number is < 0 after removing all non-numeric characters:

// remove all non-numeric characters
var txt = $(elem).val().replace(/[^\-0-9]/g, '');
if(parseInt(txt) < 0)){
  // negative number
}

To check if a number do this

var txt = $(elem).val(); 

if (!isNAN(txt) && parseInt(txt) >=0) {
    //validate
} else {
    // Invalidate
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM