我输入的内容必须格式化用户键入的内容(实际上是来自他的银行帐户的信息)。但是数字必须以某种方式格式化:
前5位数字必须是数字。
如果用户键入的数字超过5个,则最后一个数字前必须带有“-”
5位数字后,用户可以输入“ x”或“ X”
该数字的最小值为5位数,最大值为15
例子:
12345
12345-1
123456-1
1234567-1
12345-x
123456789-x
123456789-X
12345678901234-5
实际上,我正在使用可替换字符串的规范化器。
这是我正在使用的,但我无法正确格式化。
export const normalizeBankAccount = value => {
if (!value) {
return value
}
if(value.length <= 16 && (!value.match(/[^\d|X]/g) || !value.match(/[^\d|-]/g) || !value.match(/[^\d|x]/g))) {
if(value.length <= 5){
return value.replace(/[^\d]/g, '')
} else if(value.length >= 6) {
const len = value.length;
const aux=value;
const initial = value.substring(0,value.length-1).replace('-', '');
console.log("len: " +len, "\naux: " +aux,"\ninitial: "+ initial)
return value.replace(new RegExp("\\d{"+ len +"}") , initial+ '-').replace(/[X]/g, '-X').replace(/[x]/g, '-x')
}
}
}
当我使用此方法时,字符串的格式如下:
12345-6789123
相关分类