屏蔽字符串
Masking a string
我需要以这种格式放置接收到的字符串:
"## ## ## ###"
在 typescript/javascript
例如:
"12 34 56 789"
我知道有 string-mask
和一些通过 JQuery 的方法,有更简单的方法吗?
您可以用想要的数据替换每个模式部分。
function format(value, pattern) {
let i = 0;
const v = value.toString();
return pattern.replace(/#/g, _ => v[i++]);
}
console.log(format(123456789, '## ## ## ###'));
我需要一个从字符串的开头或结尾用“*”屏蔽任何字符的方法,所以我写了以下内容:
"use strict";
module.exports = {
/**
* @param {string} str
* @param {string} maskChar
* @param {number} unmaskedLength
* @param {boolean} [maskFromStart]
* @returns {string}
*/
mask(str, maskChar, unmaskedLength, maskFromStart = true) {
const maskStart = maskFromStart ? 0 : Math.max(0, unmaskedLength);
const maskEnd = maskFromStart ? Math.max(0, str.length - unmaskedLength) : str.length;
return str
.split("")
.map((char, index) => {
if (index >= maskStart && index < maskEnd) {
return maskChar;
}
else {
return char;
}
})
.join("");
},
};
对我有用的格式 xxx-xxx-xxxx
with keyup
event
stringOnKeyUp.replace(/^(\d{3})$/g, '-').replace(/^(\d{3}-\d{3})$/g, '-');
我需要以这种格式放置接收到的字符串:
"## ## ## ###"
在 typescript/javascript
例如:
"12 34 56 789"
我知道有 string-mask
和一些通过 JQuery 的方法,有更简单的方法吗?
您可以用想要的数据替换每个模式部分。
function format(value, pattern) {
let i = 0;
const v = value.toString();
return pattern.replace(/#/g, _ => v[i++]);
}
console.log(format(123456789, '## ## ## ###'));
我需要一个从字符串的开头或结尾用“*”屏蔽任何字符的方法,所以我写了以下内容:
"use strict";
module.exports = {
/**
* @param {string} str
* @param {string} maskChar
* @param {number} unmaskedLength
* @param {boolean} [maskFromStart]
* @returns {string}
*/
mask(str, maskChar, unmaskedLength, maskFromStart = true) {
const maskStart = maskFromStart ? 0 : Math.max(0, unmaskedLength);
const maskEnd = maskFromStart ? Math.max(0, str.length - unmaskedLength) : str.length;
return str
.split("")
.map((char, index) => {
if (index >= maskStart && index < maskEnd) {
return maskChar;
}
else {
return char;
}
})
.join("");
},
};
对我有用的格式 xxx-xxx-xxxx
with keyup
event
stringOnKeyUp.replace(/^(\d{3})$/g, '-').replace(/^(\d{3}-\d{3})$/g, '-');