当前位置: 首页 > 面试题库 >

如何在ReactJS的文本框中仅允许数字?

乜建柏
2023-03-14
问题内容

如何只允许在数字textboxreactjs使用regular expression而已?


问题答案:

基本思想是:

使用受控组件(使用值和输入字段的onChange属性),并在onChange句柄内部检查输入的值是否为正确的数字。仅当输入的值是有效数字时才更新状态。

为此使用此 正则表达式/^[0-9\b]+$/;

onChange处理程序将为:

onChange(e){
    const re = /^[0-9\b]+$/;

    // if value is not blank, then test the regex

    if (e.target.value === '' || re.test(e.target.value)) {
       this.setState({value: e.target.value})
    }
}

工作示例:

class App extends React.Component{

   constructor(){

      super();

      this.state = {value: ''};

      this.onChange = this.onChange.bind(this)

   }



   onChange(e){

      const re = /^[0-9\b]+$/;

      if (e.target.value === '' || re.test(e.target.value)) {

         this.setState({value: e.target.value})

      }

   }



   render(){

     return <input value={this.state.value} onChange={this.onChange}/>

   }

}



ReactDOM.render(<App/>,document.getElementById('app'))


<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>



<div id='app'/>


 类似资料:
  • 问题内容: 在angularjs中,有任何可用的功能,仅允许将数字键入文本框中,例如 问题答案: 此功能正是您所需要的。http://docs.angularjs.org/api/ng.directive:input.number 编辑: 您可以将jquery插件包装到指令中。我在这里创建了一个示例:http : //jsfiddle.net/anazimok/jTJCF/ HTML: CSS:

  • 问题内容: 如何将输入限制为文本框,使其仅接受数字和小数点? 问题答案: 这确实有效!

  • 问题内容: 如何只允许在此文本框中写入数字? 问题答案: 您可以订阅onkeypress事件: 然后定义函数:

  • 我一直在捕捉非数字时遇到问题。 我试过了,但抓不住。如果我让它捕获非数字,但不让用户再次尝试输入。。。它完全停止了我的代码。 这是我的密码:

  • 问题内容: 我正在创建一个网页,其中有一个输入文本字段,我只想在其中允许数字字符,例如(0,1,2,3,4,5 … 9)0-9。 我该如何使用jQuery? 问题答案: 注意: 这是更新的答案。下面的注释指的是一个旧版本,其中充斥着密钥代码。 在JSFiddle上 尝试一下。 对此没有原生的jQuery实现,但是您可以使用以下插件过滤文本的输入值(支持Copy + Paste,Drag + Dro

  • 问题内容: 有没有一种快速的方法来将HTML文本输入()设置为仅允许数字键击(加’。’)? 问题答案: 注意: 这是更新的答案。下面的注释指的是一个旧版本,其中充斥着密钥代码。 JavaScript 您可以使用以下功能过滤文本的输入值(支持CopyPaste,Drag+Drop,键盘快捷键,上下文菜单操作,不可键入的键,插入标记的位置,不同的键盘布局以及IE9以后的所有浏览器 : 现在,您可以使用