使用Javascript确保数字(浮点)输入,允许减号?

时间:2017-11-13 16:22:26

标签: javascript

我有一个函数,我调用表单输入的输入事件,过滤掉任何不属于浮点数的字符:

return value.replace(/[^0-9\.]/g, '');

尽管如此,它不允许减号。我如何调整它以便它只允许一个可选的初始减号然后是数字(即0到9和。)?我不能完全领先于正则表达式对模式的否定。

稍后:决定最好的办法是在考虑正则表达式之前单独处理任何减号。这就是我所确定的:

function ensureFloatingPoint(value){
  let val=value;
  if(val==='-') {
     return val;
  }
  let sign="";
  if(val.startsWith("-")){
    sign="-";
    val=val.substring(1);
  }
  val = val.replace(/[^0-9\.]/g, '');
  if(sign){
    val=sign+val;
  }
  return val;
}

这让我觉得过于冗长,但它确实起到了作用。

(这个问题并不重复,因为我要求排除字符,不接受它们。)

0 个答案:

没有答案