HarmonyOS textinput中inputFilter属性如何实现输入数字为两位小数的正整数

textinput中inputFilter属性如何实现输入数字为两位小数的正整数

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

1、两位小数正整数。demo如下:

@Entry
@Component
struct TextInputExample {
  @State message: string = '0.3256'
  controller: TextInputController = new TextInputController()
  build() {
    Column() {
      TextInput({placeholder: '请输入内容', text: this.message })
        .width('100%')
          //类型为带小数点的数字输入模式,inputFilter会导致设置输入框类型(即type接口)附带的文本过滤效果失效
        .type(InputType.NUMBER_DECIMAL)
        .maxLength(11)
          //显示定义正则表达式
        .inputFilter('^-?\\d*\\.?\\d{0,2}$',(e) =>{
          //^[0-9]+(.[0-9]{0,2})?$
          //^-?\\d*\\.?\\d{0,2}$ 此正则可保留两位小数,不符合不允许输入类似0.000、00.10、001234类似的数字
          //^(([1-9]{1}\d*)|([0]{1}))(\.(\d){0,2})?$ 此正则不生效,其他平台可以
          //保留两位小数正则表达式
          console.log('正则表达式-3',JSON.stringify(e))
        })
        .backgroundColor(Color.Red)
    }
  }
}

2、不能输入颜文字、表情等等场景可以使用TextInput的inputFilter属性设置正则表达式来拦截输入 比如以下demo设置只能输入字母: TextInput().inputFilter(’[a-z]’, (e) => { console.log(JSON.stringify(e)) })

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-textinput-V5

分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 浮点数如何保留1小数
1004浏览 • 1回复 待解决
HarmonyOS 保留1小数位,并向上取整
972浏览 • 2回复 待解决
TextInput如何禁止输入emoj表情
564浏览 • 1回复 待解决
TextInput怎么输入中文
3008浏览 • 0回复 待解决