首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JavaScript中替换中间n个字符

在JavaScript中替换中间n个字符
EN

Stack Overflow用户
提问于 2017-10-26 14:54:12
回答 10查看 12.7K关注 0票数 10

我有一个电话号码,我想显示它像审查形式。例如,我有:+923451234567

我想把它显示为:+923*******67

将使用Str.replace函数,但如何使用:

代码语言:javascript
复制
var str = '+923451234567'
str.replace(i_Dont_Know_What, '*');

因此,在本例中,字符串包含13个字符。我想用“* "代替第5-11字

我在某个地方找到了这个,但这不是我想要的。

代码语言:javascript
复制
var str = "name(replace these parenthesis by @)domain.com";
var patt1 = /\(.*@\)/i;
document.write(str.replace(patt1,"@"));

我怎样才能做到这一点?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2017-10-26 14:58:58

多种方法,一种是简单的reg表达式。

代码语言:javascript
复制
console.log("+923451234567".replace(/(\+\d{3})\d{7}/,"$1*******"))

票数 7
EN

Stack Overflow用户

发布于 2017-10-26 15:05:40

不错和简单的一行替换为子字符串匹配,不需要混乱的正则这里。

代码语言:javascript
复制
var str = '+923451234567';
console.log(str.replace(str.substring(4,11), "*******"));

票数 11
EN

Stack Overflow用户

发布于 2017-10-26 15:03:06

在开头保持3个num字符,在末尾保留2个num字符。

regex解释:https://regex101.com/r/xR6pRD/1

代码语言:javascript
复制
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);

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46957565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档