如何在reactjs中只允许文本框中出现数字?

2024-02-23

如何仅使用正则表达式在reactjs中仅允许文本框中的数字?


基本思想是:

Use 受控组件 https://reactjs.org/docs/forms.html#controlled-components(使用输入字段的 value 和 onChange 属性),并在 onChange 句柄内检查输入的值是否是正确的数字。仅当输入的值是有效数字时才更新状态。

为此,请使用这个regex: /^[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'/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在reactjs中只允许文本框中出现数字? 的相关文章

  • 如何从其他组件更新状态?

    我正在使用本机反应和反应导航进行路由 如何从另一个组件 页面更新状态 主屏幕 export class HomeScreen extends Component constructor this state test updateState
  • React:使用索引作为列表中项目的键

    使用索引作为列表中项目的键有哪些陷阱 在添加或删除列表中的元素时 React 更改检测或任何意外的列表更新是否存在任何性能缺陷 我已经阅读了几篇有关此的文章 但仍然没有弄清楚 请参考codepen http shorturl at grBM
  • 使用反应测试库提交带有数据的单元测试表单

    我有一个带有表单的反应组件 我想对表单是否使用正确的数据提交进行单元测试 使用 jest 和 RTL 这是我的组件和单元测试方法 成分 class AddDeviceModal extends Component handleOnSave
  • 如何在构建反应之前添加自定义脚本?

    我正在使用的图表库存在错误 要修复此问题 我应该运行以下脚本 https github com plouc nivo blob master scripts patch react spring js https github com pl
  • 检查两个数组是否包含相同的对象 - React componentDidUpdate [重复]

    这个问题在这里已经有答案了 我正在使用 ReactcomponentDidUpdate生命周期方法 我试图确定两个数组是否相同 My prevState数组看起来像这样 prevState players name Wayne Rooney
  • Metro 遇到错误:尝试解析模块“firebase”时

    启动模拟器后出现此错误 我在图像下添加代码并在终端上出错 这是我的 App js 文件模拟器上的错误图像 https i stack imgur com pffip png 错误 错误 尝试解析模块时firebase从文件 Users ca
  • 将哨兵图层添加到传单地图

    这就是我定义获取哨兵的 wms 图像的 url 的方式 哨兵2 https kade si cgi bin mapserv SERVICE WMS VERSION 1 3 0 REQUEST GetMap FORMAT image jpeg
  • 在操作调用源自的视图中处理 Redux Saga 结果

    我是 Redux Saga 的新手 来自 Redux Thunk 在某些情况下 我需要从调用操作的视图内部了解 API 调用是失败还是成功 使用 Redux Thunk 我会执行以下操作 我的组件和动作创建者看起来像这样 class MyC
  • 单击

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我知道如何用 jquery 做到这一点 但我被 React 困住了 每当用户点击 div 时 我如何聚焦输入字段 你需要有一个onCl
  • 如何正确使用Formik的setError方法? (反应库)

    我正在使用 React 与后端进行通信 现在尝试正确实现 Formik 表单库 主要问题 如何正确使用Formik的setError方法 客户端验证错误显示正确 但现在我尝试设置 显示后端验证错误 这些错误通过状态代码 400 的响应返回
  • 在 onClick 处理程序中传递参数的最有效方法

    我正在使用内联箭头函数来更改onClick我的 React 组件中一些 div 的处理程序 但我知道这在性能方面不是一个好方法 客观来说 什么是最有效的设置方式onClick需要参数的处理程序 这是我尝试过的 1 内嵌箭头函数 change
  • 将本地图像路径作为两个功能组件之间的 prop 传递

    我正在使用 React Native 开发一个项目 在该项目中我很难理解 props 在功能组件之间的工作原理 我的要求是创建一个可重用的按钮组件 我可以在其中传递项目内资源文件中的图像位置 这样它就会为我创建按钮 由于某种原因 如果我手动
  • iOS 是否有像 Android 一样的应用内更新功能?

    我为 Android 和 iOS 开发了一个移动应用程序 现在每周我们都会发布 2 个更新 大多数时候 Android 和 iOS 用户会停止应用程序的自动更新 但是 如果有重要更新或错误修复或新功能 那么我们必须要求用户更新应用程序以获得
  • 是否可以覆盖material-ui组件的默认道具?

    可以说我想要每一个Button组件来自material ui有默认的 propsvariant contained color secondary 这可能吗 这方面的文档在这里 https material ui com customiza
  • 样式组件如何影响性能?

    使用样式组件是否比样式表更会降低 Web 应用程序的速度 如果我关心性能并且没有任何依赖于 props 的样式 我是否应该放弃样式组件并使用样式表 当您有很多小组件时 同时使用样式化组件渲染 性能开销可能会很有意义 绝对值得测试以删除小元素
  • React:如何从react-router-dom通过链接传递道具?

    我正在努力通过title从道具到我的Dishes组件使用但找不到解决方案 有什么建议么 import Link from react router dom const Category title gt return title expor
  • 处理 Redux 和 React 中错误的最佳实践

    我的 redux 操作中有一个异步函数 它在我的减速器中返回一个像这样的对象 user fetching false fetched false error null 所以基本上当我开始调用异步函数时我将 redux 状态更新为fetchi
  • addEventListener 通过映射调度来反应 redux

    我目前正在尝试将事件侦听器添加到我在反应中制作的应用程序 我通过连接到运行的 componentDidMount API 来做到这一点只有一次该组件已渲染 仅此而已 我的问题是我正在使用connect from react redux将我的
  • 添加 CSS 来响应创建的元素,例如 data-reactroot

    在我的根div下 react 自动 创建另一个div 有没有办法向该 div 添加一个类 我需要添加 height 100 来防止背景内容在显示覆盖层时在移动设备中滚动 这就是我检查网站上的元素时显示的方式 单击按钮时 我需要将 heigh
  • 如何聚焦反应路由器链接

    我有一个用于搜索的输入框 并且希望能够按向下键将焦点从输入移动到列表的第一个s 看来我这里的东西不起作用 因为不是实际的 DOM 节点 我能够使用它来工作 a 代替 though let Link require react router

随机推荐

  • 为什么这个类对象声明有效?

    假设我有一堂课 class Test public int x Test const Test obj x obj x 为什么 Test object name Test random name 运行并且不需要另一个对象作为参数 就像是Te
  • 何时在 golang 中使用劫持?

    我不明白为什么我们使用劫持 因为我可以直接在响应正文中写入一些内容 有人可以解释一下吗 func writeSome w http ResponseWriter r http Request fmt Fprintf w write some
  • 如何使用 JavaScript 检测 CSS 动画何时开始和结束?

    我习惯于使用 JavaScript 为元素添加动画 我发现使用 CSS3 更简单 使用 JavaScript 如何检测 CSS 动画何时开始和何时结束 有什么办法吗 将适当的事件绑定到元素 例如 el addEventListener an
  • 如何为将 Gmail 作为默认邮件处理程序的用户在新选项卡中打开 mailto 链接?

    在网页上 mailto 链接会打开默认的电子邮件客户端 现在 Chrome 提供了将 Gmail 设置为默认电子邮件客户端的功能 一些用户在同一窗口中打开了链接 从而使他们离开了单击链接的页面 他们不喜欢这样 我尝试将目标 blank添加到
  • 列表视图中每一行的背景

    我正在尝试定制一个ListView为每一行设置默认背景图像和突出显示的背景图像 但是 突出显示的背景图像影响单行 而默认背景图像影响整行ListView 但我需要它影响每一行 有人可以告诉我该怎么做吗 这是我的代码 布局 main xml
  • matplotlib imshow():如何制作动画?

    我发现了这个精彩的动画简短教程 http jakevdp github io blog 2012 08 18 matplotlib animation tutorial http jakevdp github io blog 2012 08
  • 将 MySQL 架构作为 CoreData 数据模型导入 Xcode

    我有一个现有的 MySQL 数据库 我想将架构导入 Xcode 并创建一个核心数据 http developer apple com macosx coredata html数据模型 有没有办法 工具 流程 来导入CREATE声明 这样我就
  • C++11 是否允许向量

    容器要求已从 C 03 更改为 C 11 虽然 C 03 具有全面的要求 例如向量的复制构造性和可分配性 但 C 11 定义了每个容器操作的细粒度要求 第 23 2 节 因此 您可以例如 只要您只执行某些不需要赋值的操作 构造和push b
  • 如何删除没有本地跟踪分支的远程分支?

    如何在没有本地跟踪分支的情况下删除所有远程分支 我有大约 30 个没有本地分支 已删除 的远程分支和 20 个跟踪到远程的本地分支 我找到了几篇关于如何做相反的事情的帖子 编辑 寻找一个单行来解决这个问题 这样我就不必手动一一删除这些分支
  • 404 Page Not Found 您请求的页面未找到。代码点火器[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我在 co
  • 从投影仪闪光灯执行外部 exe

    我们有一个从 AS3 编译的投影仪应用程序 exe 我们如何从投影仪启动另一个 外部 可执行文件 这是代码 它没有做任何可见的事情 Play ACQ Demo Acq addEventListener MouseEvent CLICK cl
  • JavaFX 媒体播放器不播放视频

    Using OpenJFX 11我正在使用媒体播放器在 Linux 系统上播放一些剪辑 其中一些显示 另一些则不显示 据我所知 编码的唯一区别是 未播放的视频包含音轨 这是的输出mediainfo对于播放的视频 General Comple
  • 通过 boost graph 将向量变量导出到图形

    我想导出一个存储字符串值序列的向量来增强图 点文件 最后四行可以解释问题 所需的帮助 我知道代码是错误的 但需要指导来解决这个问题 我想将向量 toponodedist2 存储到图形点文件 这里我想存储一个数组 向量 它将存储索引处的值序列
  • Angular 9 HttpErrorResponse 'JSON.Parse 错误',而响应正常

    为什么这会引发错误 deleteUser userId string this dataService deleteUser userId subscribe response string gt console log response
  • 如何在 Rust 中对向量的元素运行 for 循环并更改 for 循环内部和 for 循环外部的向量?

    我是新来的Rust 我需要在 for 循环之前创建一个向量 在其上运行 for 循环 更改 for 循环内的向量 然后在 for 循环之后更改向量 我尝试了以下代码并尝试使用不可变借用 但两者都不起作用 fn main let mut ve
  • Xcode 4.3 的 pngcrush 在哪里?

    有一个苹果定制版本pngcrush在 4 3 之前的每个 Xcode 版本中 我在 Xcode 4 3 中找不到它 它仍然可以作为独立的吗exe file 另一个相关问题 文件来自哪里Command Line Tools for Xcode
  • 没有访问修饰符的方法

    好吧 这让我很烦恼 我知道我在某处读过它 但谷歌没有帮助 未指定访问修饰符的方法的可访问性级别是多少 void Foo code 我想说internal但我不是100 确定 默认可访问性type is internal 但该类型的默认可访问
  • 如何在 Promela - SPIN 中将 LTL 转换为 Automato?

    如何将 LTL 转换为 PROMELA 中的自动机 我知道使用命令 SPIN f ltl x 可以将 LTL 转换为 never 声明 但我想要 LTL 的自动机而不是否定的自动机 如果我之前否定 LTL 以生成 never 声明 则这是正
  • 为什么int array[1000][1000]是C程序中的内存问题? [复制]

    这个问题在这里已经有答案了 Why int array 1000 1000 C 程序中声明时存在内存问题main方法而不是全局声明 堆栈的大小有限 因此只能保存有限数量的信息 如果程序试图在堆栈上放入太多信息 堆栈溢出将导致 当堆栈中的所有
  • 如何在reactjs中只允许文本框中出现数字?

    如何仅使用正则表达式在reactjs中仅允许文本框中的数字 基本思想是 Use 受控组件 https reactjs org docs forms html controlled components 使用输入字段的 value 和 onC