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 字符串格式化异常
271浏览 • 1回复 待解决
HarmonyOS 字符串显示异常
349浏览 • 1回复 待解决
如何格式字符串,有人知道吗?
285浏览 • 1回复 待解决
HarmonyOS Uint8Array格式字符串的方法
591浏览 • 1回复 待解决
检查字符串是否以给定的字符串结尾
321浏览 • 1回复 待解决
检查字符串是否以给定的字符串开头
414浏览 • 1回复 待解决
字符串如何转为ArrayBuffer?
480浏览 • 1回复 待解决
HarmonyOS Web组件如何加载html字符串
467浏览 • 1回复 待解决
HarmonyOS字符串替换问题
576浏览 • 1回复 待解决
Image组件不支持svg字符串显示
217浏览 • 1回复 待解决
如何解析JSON字符串
1121浏览 • 1回复 待解决
如何实现字符串编解码
2505浏览 • 1回复 待解决
如何生成UUID的字符串
2104浏览 • 1回复 待解决
ArrayBuffer怎样转字符串
397浏览 • 1回复 待解决
如何实现ArkUI组件字符串变量拼接
2722浏览 • 1回复 待解决
如何实现ArkUI组件字符串变量拼接?
341浏览 • 1回复 待解决