2011-09-14 15 views
5

javascriptを使用して文字列からポンド記号(£)を削除しようとしています。私はそれを使用しようとしていますJavaScriptでポンド(通貨)記号をどのように置き換えますか?

str = str.replace(/\£/g, ""); 

ただし、記号を削除していません。

STRの値はスパンからフェッチされている(正しい値がフェッチされています)。このスパンは以前にそれが

£ 

シャープ記号を削除するための最良の方法上の任意のアイデアとして、文字列でエンコードされた状態で、JavaScriptを使用して設定されていますか?

+9

'replace( '£'、 '')' – Zirak

+3

@Zirak ...動作しないhttp://jsfiddle.net/EUV7c/ –

答えて

9

。例えば、'£10.00'.replace(/\u00A3/g, '');

+0

これは私のために非常にうまくそれを並べ替えるように見えました。他の答えのいくつかを試してみましたが、これが問題を解決しました。他の場所でノックを起こしている可能性があるので、他の解決策も他の人にはうまくいくかもしれません。 – Lee

+0

他のいくつかがうまくいかないかもしれない理由は、ページがロードされた文字セット(私はそれを確認していませんが)にまで及ぶと推測しています。ある意味では、リテラルの「£」文字が予想どおりに一致していないという状況があるようです。 – jmar777

1

あなたは自分の正規表現からバックスラッシュを削除

"hello w£orld".replace(/£/g,"") 
+0

あなたのgはどこですか? – naveen

+1

£記号が1つしかない場合は不要です。ああ...著者はそこにそれを持っていました...私はそれを編集します –

3

を行うことができます。それは私の作品

+2

バックスラッシュは何も傷つけてはいけません。 – user113716

+0

+1 @パトリックdw:didnt知っている。ごめんなさい。 – naveen

1

簡単な方法がある:あなたはこのためにUnicodeを使用する必要があります

str.replace('£', ''); 
+0

'script'領域が「protected」であるため、これはHTMLでは機能しません。 (CDATA以外のXMLのように 'if(a & & b){...}'と書かなければならないよりもずっと安いです:-) –

+0

@pstなぜですか?彼はコード化されていると言っています – nidhin

+0

良い点...今何が起こっているか分かりません。 –

0

が順番に意味文字

のUTF-8エンコーディングを表す1つ、2つ、または3つのエスケープシーケンスによって特定の文字の各インスタンスを置き換えることによって統一リソース識別子(URI)成分をコードしますポンド記号をエンコードするために、JavaScriptは2文字を使用します。

£ = %C2%A3 

詳細については、http://fyneworks.blogspot.com/2008/06/british-pound-sign-encoding-revisited.htmlを参照してください。

それはあなたのスクリプト内のシャープ記号の代わりに%のC2%A3を使用するのがベストでしょう。

+0

これはURL/URIにエンコードするためのものであり、文字列や正規表現のリテラル(JavaScriptコードなど)へのエンコードに関するものではありません。 –

+0

私は知っている、それは参考になるかもしれない参照しているだけです。 –

関連する問題