2017-06-22 126 views
0

javascript,替换以下两种情况的最佳方法是什么? 可以使用替换和添加正则表达式来做到这一点,如果是的话,怎么样?在Javascript中,替换全部在第二个字符后存在或全部替换为两个字符

I want to convert "aaa.bbb.ccc" TO "aaa.bbb.*" 
I want to convert "aaa.bbb.ccc.ddd.eee" TO "aaa.bbb.*.ddd.*" 
+1

你已经试过了什么? – Kruser

+0

使用索引,找到点并替换。 – thomas

+0

对于那些aaa bbb ccc,这些字符是随机生成的。不是静态的 – thomas

回答

0

var map = 'qwertyuiopasdfghjklzxcvbnm'.split(''); 
 
var rand = function(){ 
 
    var len = map.length, 
 
     arr = [], 
 
     i; 
 
    for (i = 0; i < 3; i++){ 
 
     arr.push(map[Math.floor(Math.random()*len)]); 
 
    } 
 
    return arr.join(''); 
 
}; 
 
var randStr = [rand(), rand()]; 
 

 
/* ASSUME above code is how you get random string */ 
 

 
var string = 'aaa.bbb.' + randStr[0] + '.ddd.' + randStr[1]; 
 

 
// use new RegExp() to parse string as regular expression 
 
var regexp = new RegExp(randStr[0] + '|' + randStr[1], 'gi'); 
 

 
console.log(string.replace(regexp, '*'));

了解更多关于new RegExp()here(容易的),here(详细一个)和here(工作实施例)。

你应该能够在你的代码中应用这个概念。

+0

ccc和eee是随机字符,我们确信它有''''。在这些人物之间 – thomas

+0

@ thomas看到更新的答案 –

+0

感谢您的回复,事情是,aaa,bbb,ccc,ddd,它们都是随机生成的,唯一确定的就是'。' – thomas