写点什么

【HarmonyOS】鸿蒙 TextInput 小数限制

作者:zhongcx
  • 2024-10-11
    广东
  • 本文字数:1391 字

    阅读完需:约 5 分钟

【HarmonyOS】TextInput 设置最多两位小数且整数部分不超过 6 位方法

【使用自定义键盘】


@Entry@Componentstruct Page47 {  controller: TextInputController = new TextInputController();  @State inputValue: string = '';
// 自定义键盘组件 @Builder CustomKeyboardBuilder() { Column() { Button('x') .onClick(() => { // 关闭自定义键盘 this.controller.stopEditing(); }) Grid() { ForEach([1, 2, 3, 4, 5, 6, 7, 8, 9, '.', 0, '删除'], (item: number | string) => { GridItem() { Button(item + '') .width(110) .onClick(() => { if (item == '删除') { this.inputValue = this.inputValue.substring(0, this.inputValue.length - 1); return; } this.inputValue += item; let regex = /^-?\d{0,6}(?:\.\d{0,2})?$/ let test = regex.test(this.inputValue) console.info(`onChange regex.test(this.inputValue) :${test}`) if (!test) { this.inputValue = this.inputValue.substring(0, this.inputValue.length - 1); } }) } }) } .maxCount(3) .columnsGap(10) .rowsGap(10) .padding(5) } .backgroundColor(Color.Gray) }
build() { Column() { TextInput({ text: $$this.inputValue, placeholder: '请输入内容', controller: this.controller }) .customKeyboard(this.CustomKeyboardBuilder()) } .height('100%') .width('100%') }}
复制代码

【使用原生键盘】

打印

0.1 --> true.1 --> true1. --> true1.0 --> true0.1 --> 0.1.1 --> 0.11. --> 11.0 --> 1
复制代码

代码

@Entry@Componentstruct Page47 {  @State inputValue: string = '';  regex = /^-?\d{0,6}(?:\.\d{0,2})?$/
build() { Column() { Button('正则测试').onClick(() => {
console.info(`0.1 --> ${this.regex.test('0.1')}`) console.info(`.1 --> ${this.regex.test('.1')}`) console.info(`1. --> ${this.regex.test('1.')}`) console.info(`1.0 --> ${this.regex.test('1.0')}`)
console.info(`0.1 --> ${0.1}`) console.info(`.1 --> ${.1}`) console.info(`1. --> ${1.}`) console.info(`1.0 --> ${1.0}`) }) TextInput({ text: $$this.inputValue, placeholder: '请输入内容' }) .onChange((value: string) => { console.info(`onChange inputValue start :${this.inputValue}`) let test = this.regex.test(this.inputValue) console.info(`onChange regex.test(this.inputValue) :${test}`) if (!test) { this.inputValue = this.inputValue.substring(0, this.inputValue.length - 1); } }) } .height('100%') .width('100%') }}
复制代码


用户头像

zhongcx

关注

还未添加个人签名 2024-09-27 加入

还未添加个人简介

评论

发布
暂无评论
【HarmonyOS】鸿蒙TextInput小数限制_zhongcx_InfoQ写作社区