【问题标题】:Input box onchange only allow numbers and one dot输入框 onchange 只允许数字和一个点
【发布时间】:2018-01-22 22:21:46
【问题描述】:

我正在创建一个带有 onChange 函数的输入框,该函数将检查字符是否只是数字,并且最多只允许一个句点/点 '.'

我这里的功能不起作用:

function addPercentSeparator(n) {
  let str = n;
  let match = str.match(/\d*\.\d*/)
  if (match) {
    return str;
  }
}

我也试过了:let match = str.match(/^([0-9]+(\.[0-9]+)?)/)

我想要实现的只是允许一个时期。 如果用户输入一个没有句点的数字,当他们在输入框外点击时,它会在字符串末尾附加一个句点。

【问题讨论】:

    标签: javascript regex reactjs


    【解决方案1】:

    This 正则表达式应该可以解决问题:

    ^\d*\.?\d*$
    

    但如果你问我,我会确保在点之前有数字,使用^\d+\.?\d*$


    说明:

    • 由于点不是强制性的,我添加了?,它表示“0 或 1 次出现”。
    • 我还添加了^$,以确保在整个字符串非法时不会匹配字符串的任何部分。

    我希望这对你有用!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-06
      • 1970-01-01
      • 2012-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多