2016-01-17 10 views
5

文字列中のダッシュ ' - '文字をダブルダッシュで置き換えようとしています。JavaScript文字列の ' - 'を ' - 'に置き換えます。

2015–09–01T16:00:00.000Z 

to be 

2015-–09-–01T16:00:00.000Z 

これは私が使用していたコードですが、それは動作していないようです:JavaScriptの文字列で

var temp = '2015–09–01T16:00:00.000Z' 
temp.replace(/-/g,'--') 

答えて

16

は不変です。したがって、文字列を変更すると、変更された新しい文字列オブジェクトが作成されます。

あなたの場合、replaceは文字を置き換えましたが、新しい文字列を返します。それを変数に格納して使用する必要があります。例えば

、コピーされたとき、あなたは疑問に示されている文字列が、私はそれがdifferent characterですがに似て、それがないことに気づき

var temp = '2015–09–01T16:00:00.000Z'; 
temp = temp.replace(/–/g,'--'); 

注意ハイフン(-)と同じです。これらの文字の文字コードは次のとおりです。

console.log('–'.charCodeAt(0)); 
// 8211: en dash 
console.log('-'.charCodeAt(0)); 
// 45: hyphen 
+0

です。 –

4

おそらく最も簡単なことは、分割と結合を使用することです。あなたは、文字列を持っている

var temp = '2015–09–01T16:00:00.000Z'.split("-").join("--"); 
+0

他の答えで説明したように、これは、分割する文字が文字列で使用されているものと同じ場合にのみ有効です。 – Tushar

7

ハイフン文字を使用すると、正規表現-に持っているものとは異なります。彼らは同じように見えますが、それぞれ異なるキャラクターです。

この場合、正しい正規表現は、JavaScriptでなく、ほとんどの文字列変数は不変で、すべての主要な言語ではないだけtemp.replace(/–/g,'--')

関連する問題