2016-10-27 12 views
-1

文字列のバックスラッシュを簡単に置き換えようとしています。だから私は、バックスラッシュを削除する正規表現を渡すstring.replaceメソッドを使用\バックスラッシュ文字をセミコロンに置き換える方法は?

しかし、EMEA後のバックスラッシュをコロンで置き換える代わりに、このメソッドを呼び出すと気付いた:文字。ユーザー名の最初の文字を削除するだけです。

私はJSFIddle of the code hereを作成しました。

ない、それがここで他のSOの回答で提案だと正規表現が動作しない理由を確認してください。

Replace all backslashes in a string with a pipe

が質問:

どのようにセミコロンとバックスラッシュ文字を置き換えることができますか?

コード要旨:

var str = "EMEA\victorb"; 
str = str.replace(/\\/g, ':'); 

document.write(str); 
+3

':それはSHOLDとき、それは

var str = "EMEA\victorb"; 

ですvar str = "EMEA \ victorb"; 'はバックスラッシュを含みません。 ['var str =" EMEA \\ victorb ";' does](https://jsfiddle.net/x7t4v2wg/2/)。 –

+0

Ok「EMEA」と「victorb」の間の文字「\」は何ですか?私はこれがバックスラッシュだと仮定しました。 –

+0

バックスラッシュは、JS文字列定数内で特別な意味を持ちます。参照:http://www.javascriptkit.com/jsref/escapesequence.shtml –

答えて

3

元の文字列ではなく、正規表現に問題があります:

var str = "EMEA\\victorb"; 
+0

APIから返される元の文字列にはバックスラッシュが1つしか含まれていません。 1つのバックスラッシュのオカレンスを置き換える方法はありませんか? –

+1

apiがバックスラッシュを返す場合、自動的に文字列にエンコードされます。ダブルバックスラッシュは、文字列定数をエンコードできるようにのみです。実際のAPIデータのreplaceメソッドを試して、それが何をしているかを見てください。 – creeperdomain

+1

ああ、あなたが言ったように二重バックスラッシュです。ライブAPIで試してみました。 –

0
var str = "EMEA\\victorb"; 
    str = str.replace("\\", ':'); because if you let just one \ it will be ignored. 
関連する問題