2017-06-22 28 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