你好,我正在使用 react-imask 创建一个允许使用 Hh:Mm 格式(如 23:59)屏蔽时间戳的输入。 我已经设置了掩码并且可以为定义参数中的每个字母传递一个正则表达式,但我希望能够检查第二个参数,
伪代码:
h:如果 H 的值为 2,则返回正则表达式 /[0-4]/ 否则返回正则表达式 /[0-9]/
h: H.value === 2 ? /[0-4]/ : [0-9]/,
但是我在访问这个值时遇到了麻烦,我在 react-plugin 的文档中找不到任何指导来实现这个,或者找到任何类似的例子,人们试图访问以前的值以根据条件有条件地应用某些正则表达式.
使用 ref 并像这样从输入中获取第一个值感觉是一个丑陋的解决方案:
h: inputRef.current.value[0] === 2 ? /[0-4]/ : /[0-9]/,
有没有更好的方法来实现我想要的?
这是完整组件的代码:
<IMaskInput
mask="Hh:Mm"
radix='_'
definitions={{
H: /[0-2]/,
h: /[0-5]/,
M: /[0-6]/,
m: /[0-9]/,
}}
value=""
unmask={true}
onAccept={
(value, mask) => console.log(value)
}
placeholderChar="enter number"
/>