HarmonyOS TextInput组件如何在输入框显示字符串之前匹配字符串格式(金额格式输入)

TextInput的正则表达式筛选只支持一个字符一个字符匹配,不支持字符串匹配,导致通过正则表达式筛选符合金额格式的字符串出现问题,使用onChange事件来匹配格式会出现不符合要求的字符先在输入框中显示,然后消失的问题。请问如何在输入框显示之前就对即将显示的字符串进行金额格式的匹配筛选。

HarmonyOS
2024-10-12 10:00:09
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

根据对字符串格式的描述,这边提供一个在onChange里校验符合的格式的金额:

// 处理小数点后自动补全0  
          if (value.includes('.') && value.startsWith(('.'))) {  
            value = value.replace(value, '0' + value)  
          }  
          // 如果输入值是以0开头(除了0本身),则都是0  
          if (value !== '0' && /^0+/.test(value)) {  
            value = value.replace(value, '0');  
          }  
          // 使用正则表达式校验整数部分最多六位,小数部分最多两位  
          if (!/^(\d{1,6})(\.\d{1,2})?$/.test(value)) {  
            // 如果校验不通过,则截断到合法的格式  
            const parts = value.split('.');  
            const integerPart = parts[0].slice(0, 6); // 整数部分最多六位  
            const decimalPart = parts[1] ? parts[1].slice(0, 2) : ''; // 小数部分最多两位  
            value = integerPart + (decimalPart ? '.' + decimalPart : '');  
          }
分享
微博
QQ
微信
回复
2024-10-12 17:04:39
相关问题
HarmonyOS 如何支持html格式字符串
162浏览 • 1回复 待解决
HarmonyOS 字符串格式化异常
479浏览 • 1回复 待解决
HarmonyOS 字符串显示异常
466浏览 • 1回复 待解决
如何格式字符串,有人知道吗?
445浏览 • 1回复 待解决
检查字符串是否以给定的字符串开头
535浏览 • 1回复 待解决
HarmonyOS Uint8Array格式字符串的方法
850浏览 • 1回复 待解决
Image组件不支持svg字符串显示
336浏览 • 1回复 待解决
HarmonyOS字符串替换问题
870浏览 • 1回复 待解决
HarmonyOS Web组件如何加载html字符串
622浏览 • 1回复 待解决
检查字符串是否以给定的字符串结尾
422浏览 • 1回复 待解决
ResourceStr 类型如何转成字符串
261浏览 • 1回复 待解决
如何实现ArkUI组件字符串变量拼接?
510浏览 • 1回复 待解决
如何实现ArkUI组件字符串变量拼接
2896浏览 • 1回复 待解决
HarmonyOS $r 字符串替换问题
914浏览 • 1回复 待解决
字符串如何转为ArrayBuffer?
686浏览 • 1回复 待解决
HarmonyOS 如何解析json字符串
542浏览 • 1回复 待解决
HarmonyOS 字符串转图片
47浏览 • 1回复 待解决
HarmonyOS 字符串编码问题
48浏览 • 1回复 待解决