我有一个电话号码,我想显示它像审查形式。例如,我有:+923451234567
我想把它显示为:+923*******67
将使用Str.replace函数,但如何使用:
var str = '+923451234567'
str.replace(i_Dont_Know_What, '*');因此,在本例中,字符串包含13个字符。我想用“* "代替第5-11字
我在某个地方找到了这个,但这不是我想要的。
var str = "name(replace these parenthesis by @)domain.com";
var patt1 = /\(.*@\)/i;
document.write(str.replace(patt1,"@"));我怎样才能做到这一点?
发布于 2017-10-26 14:58:58
多种方法,一种是简单的reg表达式。
console.log("+923451234567".replace(/(\+\d{3})\d{7}/,"$1*******"))
发布于 2017-10-26 15:05:40
不错和简单的一行替换为子字符串匹配,不需要混乱的正则这里。
var str = '+923451234567';
console.log(str.replace(str.substring(4,11), "*******"));
发布于 2017-10-26 15:03:06
在开头保持3个num字符,在末尾保留2个num字符。
regex解释:https://regex101.com/r/xR6pRD/1
var str = '+923451234567'
str = str.replace(/(\+?\d{3})(\d+)(\d{2})/g, function(match, start, middle, end) {
return start + "*".repeat(middle.length) + end;
});
document.write(str);
https://stackoverflow.com/questions/46957565
复制相似问题