Regex带有星号的电话号码
Regex phone number with stars
下面的函数将电话号码(如+332886487648)转换为+332******48。
formatPhoneWithStar = function(phone) {
const prefixLength = 4;
const suffixLength = 3;
const prefix = phone.substring(0, prefixLength);
const suffix = phone.slice(-suffixLength);
const nbStars = phone.length - (prefixLength + suffixLength);
let formattedPhone = prefix;
for (let i = 0; i < nbStars; i++) {
formattedPhone += '*';
}
formattedPhone += suffix;
return formattedPhone;
}
但是,我希望避免使用forloop(nodeJS目的)。我想知道是否可以使用正则表达式来完成相同的函数?
我已经试过一些像这样的
([0-9]{3})([0-9]{4})([0-9]{3})'w+
然后我想使用$1和$3,比如$1+[如何生成星]+$3。有人知道在不使用for循环和regex的情况下这是否可行吗?
谢谢你的帮助。
这里不需要使用regex,只需使用"*".repeat(nbStars)
:
phone ="+33286487648";
prefixLength = 4;
suffixLength = 3;
prefix = phone.substring(0, prefixLength);
suffix = phone.slice(-suffixLength);
nbStars = phone.length - (prefixLength + suffixLength);
formattedPhone = prefix + "*".repeat(nbStars) + suffix;
console.log(formattedPhone);
您可以传入一个替换函数:
'+33286487648'.replace(/^('+?'d{3})('d+)('d{2})$/, function() {
return arguments[1] + arguments[2].replace(/./g, '*') + arguments[3];
}); // Produces '+332******48'
或者可能对眼睛更容易一点(受其他答案中.repeat
的启发):
function hideMiddle(string, prefixLength, suffixLength) {
var re = new RegExp('^(''+?''d{' + prefixLength + '})(''d+)(''d{' + suffixLength + '})$');
return string.replace(re, function(match, prefix, middle, suffix) {
return prefix + '*'.repeat(middle.length) + suffix;
});
}
console.log(hideMiddle('+33286487648', 3, 2));
console.log(hideMiddle('+33286487648', 1, 1));
使用正则表达式+替换:
var phone = "+33286487648";
var m = phone.match(/('+'d{3})('d+)('d{3})/);
var res = m[1] + '*'.repeat(m[2].length) + m[3];
console.log(res);
相关文章:
- 带有加号的电话号码验证(可选)
- Regex表示8位电话号码(新加坡号码长度)
- 更改regex以接受带空格或不带空格的电话号码
- Regex Javascript电话号码验证最小-最大长度检查
- 使用Regex在不在锚点中的页面上查找电话号码
- (000)000-0000上javascript/jquery中的电话号码regex
- Regex用于广泛的电话号码验证
- 在javascript中强制输入电话号码的Regex
- regex检查电话号码
- 电话号码regex验证[Areacode和电话号码]
- Regex,逗号分隔电话号码
- Regex来匹配不是由所有相同号码组成的电话号码
- Regex法语电话号码
- 如何使用正则表达式(Regex)从字符串中获取电话号码
- 用字母匹配电话号码- regex
- Regex验证电话号码失败
- 全球电话号码的Javascript RegEx
- Regex带有星号的电话号码
- Javascript Regex - 使用什么来验证电话号码
- Regex电话号码实时格式化