允许在正则表达式中使用减号

时间:2014-03-25 07:02:13

标签: javascript regex

我有一个正则表达式,但我不知道如何允许减号我的意思是,我想允许用户使用该符号,但它也可以是没有减号的正值。

一开始我在javascript中有正则表达式

 var regex = /[0-9]|\./;

我已经尝试了var regex = /\-[0-9]|\./;,但它不起作用

这是我的javascript函数

function isNumeric(evt,type) 
{
  var theEvent = evt || window.event;
  var key = theEvent.keyCode || theEvent.which;
  key = String.fromCharCode( key );
  if(type==1)
  var regex = /[0-9]/;
  else if(type==2)
  var regex =  /^-?[0-9]\d*(.\d+)?$/;
  else if(type==3) 
  var regex = /[0-9]|\ /;
  /* 13=entrer;9=tabulation;8et 46 supprim� et sup; 37et 39 fl�che*/
  if(  theEvent.keyCode == 13 || theEvent.keyCode == 9 ||  theEvent.keyCode == 8 || theEvent.keyCode == 46 || theEvent.keyCode == 37 || theEvent.keyCode == 39 || (theEvent.keyCode == 19 && type==3))
  {
  theEvent.returnValue = true;
  }
  else if( !regex.test(key)) 
  {
    theEvent.returnValue = false;
    if(theEvent.preventDefault) theEvent.preventDefault();
  }

}

这就是我称呼它的方式

onKeyPress="isNumeric(event,2);"

非常感谢Anykind的帮助

1 个答案:

答案 0 :(得分:2)

您可以使用?

来选择减号
var regex = /^-?[0-9]+(\.[0-9]+)?$/;

我不确定你为什么|\.只允许输入一段时间。