0

以前に尋ねられたすべての質問を見ましたが、役に立ちませんでした。バックスラッシュを含む文字列があり、バックスラッシュを「-」に置き換えたい

var s="adbc\sjhf\fkjfh\af";
s = s.replace(/\\/g,'-');
alert(s);

私はこれがそれを行う適切な方法だと思っていましたが、アラートで表示されるため、もちろん間違っていますadbcsjhffkjfhafが、のようにする必要がありますadbc-sjhf-fkjfh-af

私はここでどのような間違いを犯し、その理由とこれを達成する方法は何ですか...??

ワーキング JS フィドル

4

4 に答える 4

3

入力文字列のバックスラッシュを 2 倍にする必要があります。

var s="adbc\\sjhf\\fkjfh\\af";

文字列リテラルで文字の前に '\' を付けると、その文字に特別な意味が与えられます (たとえば'\t'、タブ文字を意味します)。実際に文字列に '\' を含めたい場合は、2 番目のバックスラッシュでエスケープする必要があります。'\\'

于 2013-04-17T12:30:42.710 に答える
2

\Javascript は文字列のinを無視してい\s \f \aます。console.log(s)割り当ててから行うと、理解できます。

\でエスケープする必要があり\\ます。お気に入り:"adbc\\sjhf\\fkjfh\\af"

于 2013-04-17T12:31:19.870 に答える