hoge.replace(?????????, "円マーク");
円マーク2つを\\のように、重ねるとOKです。
ちなみに、二重引用符は、\" です。
こういうのをエスケープ文字といったり、エスケープシーケンスといいます。
多分日本語のフォントでバックスラッシュ(反対向きの / )が円マークと同じに見えてしまうことが原因です。
下の例ならバックスラッシュも変換するので上手くいきます。分かりにくいのですが、1つ目の変換は\(円マーク)、2つ目の変換は\(バックスラッシュ)をそれぞれ空白にしています。
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<SCRIPT LANGUAGE="JavaScript"><!--
function check(){
alert(document.form.hoge.value.replace(/\\|\\/g, ""));
}
//--></SCRIPT>
</HEAD>
<BODY>
<FORM name="form">
<INPUT type="text" name="hoge">
<INPUT type="button" value="送信" onClick="check()">
</FORM>
</BODY>
</HTML>
なるほど、そういうことなんですか。
私から見ると「¥¥|¥¥」と見えますが
UNIXでは「¥¥|¥\」と見えるのでしょうか...?
(上の文は全角で書いています)
ありがとうございました
追記
下記のコードを書き直したら問題なくできました。
しかしなぜできるときとできないときがあるのかが理解できません。。。
ありがとうございました。
----------以上追記分------------
ありがとうございます。
エスケープについては知っているのですが下記のようなコードで
フォームに「あいエうえお」と入力して試してみてください。
「エ」は削除ができません。
これを置き換えできる方法を教えてください。
ちなみに
replace(/あ/, "")
とすると「あ」は削除できます
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript"><!--</p> <p> function check(){</p> <p> alert(document.form.hoge.value.replace(/エエ/, ""));</p> <p> }</p> <p> //--></SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>