2011-06-29 7 views
4

を使用して置き換える文字列を使用して、コロンの交換:私が操作しようとしている単純な文字列を持っているJavascriptとjQueryの

ご注文はすぐに処理されます。

は、私が使用して文字列をつかみます:

var html = jQuery('.checkout td h4').html(); 

私はその後、交換してみてください ':' を使用して:

html.replace(":", "."); 

コンソールに印刷すると、文字列は元の文字列と同じになります。私もhtml変数は、次の手順を実行して、型「string」であることを確認してみた:

html = html + ""; 

何もしないこと。検索の際には、replace関数はRegEx検索を行い、 ":"文字は特別な意味を持つように思われる。私はこれを解決する方法を知らない。誰かが私がこの臭いのコロンを取り除くのを助けることができますか?

答えて

6

replace関数は、置き換えられた新しい文字列を返します。
JavaScript文字列は不変です— できません元の文字列を変更します。

あなたはそれがsubstring()を使用してこれを実行することも可能ですhtml = html.replace(":", ".");

+0

私はそれを試みましたが、うまくいかなかった...ああ...それは確かに今働いています。ありがとう!私は9分で私にできるときにあなたにチェックを与えるでしょう。 – tollmanz

0

を記述する必要があります。

var str = "Your order will be processed soon:"; 
var str = str.substring(0,(str.length - 1)) + '.'; 
alert(str); 

JS Fiddle demo

これは、追加情報(したがってCW)ではなく、コロン(:)は常にが最後の文字でなければならないと、それだったであろうから、あなたが、このようにそれを行う必要があることを深刻な提案のためですがではなく、とすると、他の単語は短縮されます。

参考:

1

私はC++が文字列は変更可能ですだけハイレベル言語だと思います。つまり、replaceは操作対象の文字列を変更できないため、代わりに新しい文字列を返す必要があります。

ではなく

var element = jQuery('.checkout td h4'); 

element.html(element.html().replace(":", ".")); 

または、おそらくより正確に(あなたが複数の要素を持っているかもしれないので)次のことを試してみてください。

jQuery('.checkout td h4').html(
    function (index, oldHtml) { 
     return oldHtml.replace(":", "."); 
    } 
); 
4

多少なりとも...

私はすべてを置き換えるために動作するようにこれらの答えを得ることができませんでした:URLエンコードされた文字%3aのための文字列で、仕事に「by'xdazzこの回答を変更「」:取得するJavascript: Replace colon and comma characters ...

str = str.replace(/:\s*/g, "%3a"); 
あなたのケースでは

あなたが長い文字列にピリオドを持つすべてのコロンを交換したい場合には、

str = str.replace(/:\s*/g, "."); 

だろう。

これは他の人に役立つことを願っています。

関連する問題