简体   繁体   中英

Regex for negative decimal values client and server side c# jquery

I have a keypress function bound to an element, this element needs to only allow positive and negative decimal characters. ie 0-9, '.' , '-'

any other characters I need to prevent the character being inputted

Is there any way to achieve this in the current keypress function

 $('.test').keyup(function (event) {

     //if character is NOT ok i.e. 0-9, '.' , '-'
     //STOP
     ..ELSE
    //continue to do something

});

Ps I am using jquery

One other way is to replace all illegal characters when typing:

$("selector").keyup(function (e) {
        this.value = this.value.replace(/[^0-9\.-]/g, '');
    });

May be useful, when user not typing text, but pasting it.

The key is inserted on keydown, so you should use that event instead. Then this should work:

$('.test').on('keyup', function(e){
  e.preventDefault();
  if(e.keyCode >= 48 && e.keyCode <= 57 // regular numbers
     || e.keyCode >= 96 && e.keyCode <= 106 // Numpad
     || e.keyCode === 189 // Minus
  ){
    try{
      parseInt($(this).val());
      // Continue, this is a valid numeric value.
    }catch(ex){
       // Stop
    }
  }else {
    // Stop
  }
});

Hope this helps:

var string = '-10.56',
    illegal = /[^0-9.-]/.test(string); // return true if illegal character found

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