我想通过javascript将变量模式复制到其他变量,以便同时处理掩码和业务rqmnt
例如,如果a = 89,734且b = 98780 那么b也应该像 - 98,780
注意 - ','只是一个示例掩码,也可以是小数 - '。' 如果是字符串,则为大写/小写。
任何人都可以帮助我 感谢
答案 0 :(得分:0)
试一试:
pattern
| given
| | result
| | |
9 + 9 -> keep
* + 9 -> insert *
a + a -> keep
a + A -> a (lower)
A + a -> A (upper)
function build(a, b) {
function isN(s) { return (typeof s !== 'undefined') && ~s.search(/\d/); }
function isL(s) { return s === s.toLowerCase(); }
var i, l;
for (i = 0, l = a.length; i < l; i++) {
if (!isN(a[i]) && isN(b[i])) {
b = b.slice(0, i) + a[i] + b.slice(i);
continue;
}
if (a[i].toLowerCase() !== a[i].toUpperCase()) {
if (isL(a[i]) && !isL(b[i]) || !isL(a[i]) && isL(b[i])) {
b = b.slice(0, i) + b[i][isL(a[i]) ? 'toLowerCase' : 'toUpperCase']() + b.slice(i + 1);
continue;
}
}
}
return b;
}
function go(a, b) {
document.write('<pre>pattern: ' + a + '\ngiven: ' + b + '\nresult: ' + build(a, b) + '</pre>');
}
go('89,734', '98780');
go('aBcDeF', 'zyxwvu');
go('aBcDeF', 'GHIJKL');
go('12*456', 'abcdef');
go('12*456', '98765');
go('124.000,56 Euro', '25287674 euro');