鸿运应用开发学习-发现了一个TextInput组件中使用正则表达式后出现的BUG

这篇具有很好参考价值的文章主要介绍了鸿运应用开发学习-发现了一个TextInput组件中使用正则表达式后出现的BUG。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、起因

最近我正在学习鸿蒙应用开发,准备把之前在安卓系统上开发的一个小应用,使用ArkTs语言,再写一遍,做成原生鸿蒙应用。我的应用需要对液体的体积数据进行换算,对输入的体积和对应的温度参数根据相关的计算公式进行换算,得到该液体在20℃下的标准体积,然后在用标准体积做后续的数据处理。该应用需要用户输入体积和温度,这就要求用户只能输入0-9的数字以及符号和小数点,且要符合数字的要求。

二、发现InputType.Number模式不支持小数点

之前我在安卓系统上进行应用开发时,输入组件EditText可以通过设置inputType="numberSigned|numberDecimal"达到目的。但在鸿蒙应用的开发过程中,发现鸿蒙的输入组件TextInput其属下type只提供了Normal、Password、Email、Number、PhoneNumber五个枚举值,没有与安卓的numberSigned、numberDecimal功能相对应的枚举值。我使用InputType.Number进行测试,确认只能输入0-9的数字,无法输入其它符号。

三、反馈问题后华为工程师建议使用正则表达式

 于是我于1月5日在华为开发者联盟上向客户提交了问题,希望华为官方人员能提供帮助。

鸿运应用开发学习-发现了一个TextInput组件中使用正则表达式后出现的BUG,学习笔记,鸿蒙应用开发学习,项目实战,学习,bug,鸿蒙,个人开发

隔了几个小时,华为官方工程师给予了答复,确认鸿蒙的InputType不支持可以输入数字及负号和小数点的方式。建议我使用正则表达式来解决问题。 鸿运应用开发学习-发现了一个TextInput组件中使用正则表达式后出现的BUG,学习笔记,鸿蒙应用开发学习,项目实战,学习,bug,鸿蒙,个人开发

四、使用正则表达式也不能解决问题

于是我又恶补了一下正则表达式的知识,按照所学的知识对输入组件TextInput做了过滤,并且type属性要选择InputType.Normal。

.inputFilter('(^[-]?[0-9]{1,2}[.]{1}[0-9]{0,1}$)|(^[-]?[0-9]{1,2}$)', (e) => { // 排除字母汉字和部分标点符号还有负号
    console.log('不合法字符:' + JSON.stringify(e))
  })

鸿运应用开发学习-发现了一个TextInput组件中使用正则表达式后出现的BUG,学习笔记,鸿蒙应用开发学习,项目实战,学习,bug,鸿蒙,个人开发

再次进行测试结果发现,仍然不能输入负号和小数点。

鸿运应用开发学习-发现了一个TextInput组件中使用正则表达式后出现的BUG,学习笔记,鸿蒙应用开发学习,项目实战,学习,bug,鸿蒙,个人开发

鸿运应用开发学习-发现了一个TextInput组件中使用正则表达式后出现的BUG,学习笔记,鸿蒙应用开发学习,项目实战,学习,bug,鸿蒙,个人开发

我怕自己设置的正则表达式有问题,有在python上进行了测试,确认表达式没错。

鸿运应用开发学习-发现了一个TextInput组件中使用正则表达式后出现的BUG,学习笔记,鸿蒙应用开发学习,项目实战,学习,bug,鸿蒙,个人开发

之后,我尝试了简化正则表达式做进一步的检测,结果还是不能符合要求,比如使用

'^(-?[0-9.]+)$'的正则表达式,可以输入小数点了,但不能输入负号,而且还存在输入的数据不符合数字要求的情况。

鸿运应用开发学习-发现了一个TextInput组件中使用正则表达式后出现的BUG,学习笔记,鸿蒙应用开发学习,项目实战,学习,bug,鸿蒙,个人开发

鸿运应用开发学习-发现了一个TextInput组件中使用正则表达式后出现的BUG,学习笔记,鸿蒙应用开发学习,项目实战,学习,bug,鸿蒙,个人开发

五、可能是鸿蒙系统的一个小BUG

我再次将问题提交给华为,这次连客户工程师也没辙了,回复我说,“已经将问题上升至相关部门,会尽快给您答复,请耐心等待。”

鸿运应用开发学习-发现了一个TextInput组件中使用正则表达式后出现的BUG,学习笔记,鸿蒙应用开发学习,项目实战,学习,bug,鸿蒙,个人开发鸿运应用开发学习-发现了一个TextInput组件中使用正则表达式后出现的BUG,学习笔记,鸿蒙应用开发学习,项目实战,学习,bug,鸿蒙,个人开发

今天已经1月11日了,距离我第二次提问已经过去了7天,到写这个博客时,我还没有得到答复,估计这可能真是一个BUG,华为的工程师正在研究中吧。

六、当前暂时的解决办法

但我的应用还是要继续开发,我尝试着将正则表达式改成'[-1234567890.]' 后再次测试,可以输入数字、符合和小数点,但是.... 输入的字符顺序得不到限制,可能出现非数字形式的字符串,比如 -5-5-  12..5  .-512. 什么的。总之,仍然与我的需求有距离,还需要写大量的代码对输入的字符串进行判定,比较麻烦。并且由于type属性是选择的InputType.Normal,那么点击TextInput组件后,弹出的软键盘就不是数字键盘了,还得切换一下。这点上安卓还是方便得多,只需要一行代码就可以搞定。希望华为的工程师能解决这个问题。这对需要输入带符号和小数点数字的情况会很有帮助。

鸿运应用开发学习-发现了一个TextInput组件中使用正则表达式后出现的BUG,学习笔记,鸿蒙应用开发学习,项目实战,学习,bug,鸿蒙,个人开发文章来源地址https://www.toymoban.com/news/detail-793876.html

到了这里,关于鸿运应用开发学习-发现了一个TextInput组件中使用正则表达式后出现的BUG的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【HarmonyOS】开发一个可以看小姐姐的鸿蒙应用 鸿蒙开发入门

    先整张效果图,丑点是丑点,但可以用,买不起鸿蒙系统手机的我,只配用虚拟机。 要说目前最火的手机操作系统,要我来看的话那必然是鸿蒙无疑。16号刚刚结束了第五次鸿蒙内测,在看到这次的内测名单之后,居然有970的机器,这是不是说明俺这手里奋战了三年的荣耀

    2024年02月15日
    浏览(62)
  • GPT应用开发:运行你的第一个聊天程序

    本系列文章介绍基于OpenAI GPT API开发大模型应用的方法,适合从零开始,也适合查缺补漏。 本文首先介绍基于聊天API编程的方法。 很多机器学习框架和类库都是使用Python编写的,OpenAI提供的很多例子也是Python编写的,所以为了方便学习,我们这个教程也使用Python。 Python环境

    2024年01月16日
    浏览(65)
  • 快速配置 Rust 开发环境并编写一个小应用

    安装: curl --proto \\\'=https\\\' --tlsv1.2 -sSf https://sh.rustup.rs | sh 更新: Rust 的升级非常频繁. 如果安装 Rustup 后已有一段时间,那么很可能 Rust 版本已经过时, 运行 rustup update 获取最新版本的 Rust rustc:编译Rust程序 rustc只适合简单的Rust程序,较大型的项目还是推荐使用Cargo Cargo:Rust 的构建

    2024年02月16日
    浏览(47)
  • django传统全栈开发一个ChatGPT应用

    根据客户需求,开发一个能多人使用的 ChatGPT 平台,背后使用的是 ChatGPT 的 api_key 。 需求 1、可多轮对话 2、可删除对话 3、流式显示对话 4、可多人使用 5、多个api_key均衡使用 技术分析 第一次接触 openai 的二次开发,看文档、看文章,技术点如下: 1、不同等级的 api_key 使用

    2024年02月08日
    浏览(38)
  • FISCO BCOS开发第一个区块链应用--小白实战

    官方链接 简单的步骤直接跳过了,主要是记录下整个过程中出现问题最多的地方 第一步. 安装环境 首先,我们需要安装JDK以及集成开发环境 首先,在官网上下载JDK14( JDK1.8 至JDK 14都支持 )并安装 然后,修改环境变量 视频讲解 文字步骤 进入IntelliJ IDE官网,下载并安装社区

    2024年02月02日
    浏览(45)
  • 开发一个Android应用:从零到一的实践指南

    在这篇博文中,我们将逐步探讨如何从头开始构建一个Android应用。我们将从最基本的环境搭建开始,然后深入讨论组件、布局和其他核心概念。在完成整个过程后,你将会掌握一个简单但完整的Android应用开发流程。让我们开始吧! 准备开发环境 创建项目 理解项目结构 设计

    2024年02月08日
    浏览(62)
  • OpenHarmony 应用开发入门 (一、环境搭建及第一个Hello World)

    万事开头难。难在迈出第一步。心无旁骛,万事可破。没有人一开始就能想清楚,只有做起来,目标才会越来越清晰。--马克.扎克伯格 前言 2024年1月16日,华为目前开启已HarmonyOS NEXT开发者预览版Beta招募,报名周期为1月15日-1月22日。HarmonyOS NEXT开发者预览版将不再兼容安卓开

    2024年01月18日
    浏览(62)
  • 云原生应用开发,通过一个案例手把手带你入门

    针对云势所趋的市场发展。云计算和云原生应用已经成为主流技术趋势,学习这类技能有远见。可以开发出符合云原生运营模式的应用,满足企业业务发展需要。 实现资源的高效利用和弹性扩展。通过微服务架构、容器技术、弹性计算等手段,构建出计算资源利用高、扩展灵活的

    2024年02月06日
    浏览(30)
  • HarmonyOS鸿蒙应用开发 (一、环境搭建及第一个Hello World)

    万事开头难。难在迈出第一步。心无旁骛,万事可破。没有人一开始就能想清楚,只有做起来,目标才会越来越清晰。--马克.扎克伯格 前言 2024年1月16日,华为目前开启已HarmonyOS NEXT开发者预览版Beta招募,报名周期为1月15日-1月22日。HarmonyOS NEXT开发者预览版将不再兼容安卓开

    2024年01月23日
    浏览(50)
  • Python开发第一步:如何制作一个简单的桌面应用

    大家好,我是baifagg, 一个热爱Python的编程爱好者。 今天我们来学习一下, 如何用Python制作一个简单的桌面应用程序。 虽然桌面应用程序开发并不是Python的主要领域, 但是它也有很多优秀的库和工具, 可以帮助我们快速实现想法。 所以不妨跟我一起来探索一下Python的魅力

    2024年02月15日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包