我正在使用react-maskedinput,对于mask它接受正则表达式。我正在从后端获取蒙版。有时遮罩为空,我需要设置默认遮罩。如果为空,我希望允许用户键入任何40个符号。
export function getMaskForInput(mask) {
const newMask = mask.toString().replace(/`9/g,'q').replace(/9/g,'1').replace(/q/g,'`9');
const emptyMask = '/\W{40}/g'; // probably not correct expression
if (mask) {
return newMask.replace(/`/g,'\\').replace('$','');
}
console.log('empty mask');
return emptyMask;
}
const mask = getMaskForInput(maskEdit)
<MaskedInput
mask={mask}
type="tel"
id="account"
autoComplete="off"
maxLength={40}
placeholder="№ лицевого счета"
placeholderChar=" "
onChange={(e) => this.handleonaccountChange(e.target.value.trim())}
value={this.state.account}
formatCharacters={{
W: {
validate(char) { return /[\wа-яА-Я \-0-9.@]/.test(char); },},w: {
validate(char) { return /[\wа-яА-Я \-0-9.@]/.test(char); },}
}}
/>
但是当我返回'emptyMask'时,它会显示我的mask的正则表达式。我在哪里犯错?