javascript - 如何防止第二次输入相同的字符

标签 javascript reactjs

我正在进行十进制数字输入验证,我想防止连续第二次输入“point”

例如-Input field

在上面的输入框中,第一次按下按键后,我应该无法连续第二次按下它。

到目前为止我已经做到了-

if (e.which === 190) {
   if(value === '') {
    e.preventDefault()
    this.setState({[error]: "Only one period allowed in decimal numbers!"});
    return false;
   }
}

但这只会阻止第三次按键并允许第二次按键。

如何使用 JavaScript 防止按键?

PS-如果类型为“数字”,我将使用输入字段。因此,在我按下第二个点后,e.target.value 变为 null。

最佳答案

您可以将正则表达式与 onChange 事件一起使用。

testHanlder = (event) => {

  let value = event.target.value;

  if (value) {
    value = value.replace(/\.+/g, ".")
    this.setState({value})
  }
}

关于javascript - 如何防止第二次输入相同的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49573211/

相关文章:

javascript - 如何分派(dispatch)一个 Action 以将数据保存在下一个 js 中

javascript - 为什么 `return` 和 `(` 之间的换行符会破坏代码?

reactjs - 删除子项的惯用方法

javascript - 如何使用 jquery 更改默认必需的选择选项字段消息

javascript - 使用 npm 终端的 npm 脚本奇怪行为

javascript - React 组件不会映射数组

reactjs - 我想用 React 在 div 元素中添加参数

javascript - 在 reactjs 中使用渲染方法之外的函数

javascript - 当新记录添加到他的商店时网格不更新

javascript - 在 Ace Editor 中对多个光标执行方法