2016-11-08 11 views
2

文字列のすべての文字を特定のインデックスの参照に置き換える方法。私は今、私は文字列のすべての文字を特定のインデックスの参照に置き換える方法

var charAtFirst = str.charAt(1); 

ので、私は1

を第一インデックスの文字を取得していているかどうか確認するために

var str = "A1 B1C2" 

のような文字列をたいている

今、私は交換したいです価値を持っているすべての文字1.それを行う方法。手伝ってくれてありがとう。

+0

[JavaScript__で__replace列(https://www.google.co.in/webhp?sourceid=chrome-instant&ion=1&espv = 2&ie = UTF-8#q =%20string%20in%20javascriptを置き換えます) – Rayon

+0

実際、インデックス1のnembreは2番目の文字であり、最初の文字ではありません。 – Ismail

答えて

2

生成する際に文字列を使用してRegExpを生成すると、文字列内の特別な意味文字をエスケープする必要があります。 RegExpを生成した後にString#replaceメソッドを使用してください。

var str = "A1 B1C2"; 
 
var charAtFirst = str.charAt(1); 
 

 
console.log(
 
    str.replace(new RegExp(charAtFirst.replace(/[|\\{}()[\]^$+*?.]/, '\\$&'), 'g'), '') 
 
);


UPDATE 1:あなたが特定の数よりも多い数を削除したい場合は、その後数と比較して、すべての数字を取得し、交換してください。コールバック関数でString#replaceメソッドを使用できます。

var str = "A1 B1C2"; 
 
var charAtFirst = +str.charAt(1); 
 

 
console.log(
 
    str.replace(/\d+/g, function(m) { 
 
    return +m > charAtFirst ? '' : m; 
 
    }) 
 
);


UPDATE 2: あなたは文字をインクリメントしたい場合は、それが好きです。

var str = "A1 B1C2"; 
 
var charAtFirst = str.charAt(1); 
 

 
console.log(
 
    str.replace(new RegExp(charAtFirst.replace(/[|\\{}()[\]^$+*?.]/, '\\$&'), 'g'), (+charAtFirst) + 1) 
 
);

+0

正確には何ですか? – David

+1

@David:global flag ...すべてのoccureneceを置き換えます –

+0

ここでは、charAtFirstにある数字より大きい数字に置き換えたいと思います。そのためにはgの値を変更する必要があります – David

1

簡単な使用本

var NewStr = str.replace(/1/g, "2"); 
関連する問題