2010-11-24 11 views
3

私は、文字列が作成されたとき(動的に)文字列の前に5つのスペースを追加し、文字列の後に5つのスペースを追加するWebサイトでバグを修正する必要がある、 。明らかに、最善のことはバックエンドコードを修正し、それらのスペースを取り除くことです...長いストーリーの短い、私はできないと私はそれをjavascriptで行う必要があります。私はそれを行う方法はかなりわからないんだけど、これは私が私の考えは誰もが何か提案を持っていますジャバスクリプトJavaScriptの文字列の一部を削除する

function removespace() 
{ 
    var oldString = document.getElementById('balance'); 
    var newString = (THIS IS WHERE I AM STUCK... I NEED TO REMOVE THE SPACES); 
    document.getElementByID('balance').innerHTML = newString; 
} 

で次の操作を実行することでした

<!--Dynamically generated string including spaces added in backend--> 
<span id="balance">  245.34  </span> 

を考えていた何ですか? ありがとう!

また、私はプロトタイプやjqueryのようなjavascriptライブラリを使用することはできません。

編集:私は今のところこれを持っている...しかし、それは動作していないようです:

<span id="balance">  $245.00  </span> 

<script> 
function removespace() 
{ 
    var oldString = document.getElementById('balance'); 
    var newString = oldString.trim(); 
    document.getElementByID('balance').innerHTML = newString; 
} 

String.prototype.trim = function() { 
return this.replace(/^\s+|\s+$/g,""); 
} 
</script> 

ここでは、私が使用ソリューションです...私は、他のアップデートを見た前に、私はそれを終えました。 ..しかし、誰もが非常に有用だった

function trim(stringToTrim) { 
return stringToTrim.replace(/^\s+|\s+$/g,""); 
} 
var oldString = document.getElementById('balance').innerHTML; 
var newString = trim(oldString); 
document.getElementById('balance').innerHTML = newString; 
+0

なぜスペースを削除する必要がありますか? HTMLは連続スペースを1つに圧縮します。したがって、レンダリングされたHTMLページは、値の前後に1つのスペースしか表示しません(しかし、これは望ましくないかもしれません)。 –

+0

ページのデザインを破る前または後に1つのスペースを表示しても、 – Bill

+0

Ok。私はそれを仮定しましたが、私は確かめたいと思っていました...時には人々は何も持っていないのに問題を作ります;) –

答えて

8

Unfortunetly JavaScriptがtrim()機能はありません。しかし、あなたはあなた自身をロールバックすることができます。その後、

String.prototype.trim = function() { 
    return this.replace(/^\s+|\s+$/g,""); 
} 

と実行します。

var newString = oldString.trim(); 

上記の機能がthis websiteからである(最初の「JavaScriptのトリム」をGoogleで結果)に基づい

編集(あなたの質問とコメントへの更新):

変更

var oldString = document.getElementById('balance'); 

var oldString = document.getElementById('balance').innerHTML; 

document.getElementById('balance').innerHTML = newString; // notice the lower case d 

document.getElementByID('balance').innerHTML = newString; 

を変更すると、あなたは(いくつかの点でremovespace関数を呼び出す必要がありますが、私はあなたがすでにそれを行うと確信しています):)

+1

これは私がちょうどリンクするつもりだったので+1です:)。 OPがフレームワークまたはツールキットを使用している場合、それらのAPIでtrim()メソッドを調べて、コードを複製しないようにしてください! – linusthe3rd

+0

ライブラリやフレームワークを使用することはできません:( – Bill

+1

これはプレーンなバニラJavaScriptコードです。ライブラリは不要です( 'prototype'はあなたを混乱させないようにしてください、既存のクラスを拡張できるJavaScriptのトラフです)。 –

0

Writtiここで私の頭の外に出てください。

var elem = doc.getElementById('balance'); 
var oldString = elem.innerHTML; 
elem.innerHTML=oldString.(/^\s+|\s+$/g,"") 

何か?

編集:うん、唯一の私の最初のスペースが削除されたので、私はすべての空白を削除する回答番号1つの:)

+0

それはすべての空白を削除します – ThiefMaster

+0

これはスペースの最初の出現を取り除くだけです –

+0

あなたは正しいです、Jan、私は私の頭の上から書いていました、考えていませんでした。最初に:) – Zlatko

-1

使用トリム()から空白を盗んだ

VAR NEWSTRING = oldString。トリム();

または空の文字列に空白を置き換えるために置き換える使用:

VAR NEWSTRING = oldString.replace(」」、 ""); jQueryを使って

+0

JavaScriptは 'trim'関数を持っていません。 2番目のソリューションは、スペースの最初のオカレンスのみを置き換えます。 –

+0

var newString = oldString.replace(//g、 ""); // g(lobal)=すべての出現箇所を置換する –

+1

@JanHančič:ブラウザがどのバージョンのJavaScriptやECMAScriptを実装しているのか、それほど洞察はしていないが、 'trim()' [JavaScript 1.8.1 ECMAScript 5)](https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/String/trim)を参照してください。 –

-1

それは簡単です:

var newStr = jQuery.trim(oldStr); 
+1

彼はjQueryソリューションを求めていませんでした –

+0

彼はjqueryを使用したくないと指定しておらず、jqueryもjavascriptです。 – Arief

+0

.... *一口* .... –

-1

バランスが二重であることを意味している場合は、文字列に変換できます。

var c = '1234'; 
d = c * 1; 

戻した文字列への必要性がであることとします。

d = c.toString(); 
+0

尋ねられたものではありません... –

0

このようなものを試してみてください。

str.replace(/^[\s\xA0]+/, "").replace(/[\s\xA0]+$/, ""); 
関連する問題