- ベストアンサー
文字列後にあるスペースを削除
たとえばですね... JavaScript内の変数に"abc "のように文字列の後側にスペース(1バイト文字)が 入っていた場合、スペースを取り除き"abc"という文字列にする 関数をご存知ないでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
正規表現でこんなんどうでしょう? ただ IE4/NN4以上が対象のはずです(未確認) str = "abc "; document.write("|" + str.replace(/ $/g, "") + "|<BR>"); ※|は単にスペースが消えているかをチェックするために付けているだけです(笑) これで文末($)の連続する(g)スペースを""に置換しています。 str.replace(/ $/g, "") 正規表現を駆使すればもっといろいろできるはずです。 詳しくは正規表現関連を・・・(^^;
その他の回答 (4)
- basil
- ベストアンサー率35% (148/420)
不安になったので自分で試してみました。 やっぱり私の回答は間違いでした...。 正規表現には "\s+$" が適当で、 関数も str.replace(/\s+$/g, "") で動作しました。 たとえば... aaa = "hoge "; bbb = aaa.replace(/\s+$/g, ""); とすると、bbb の中身は "hoge" になります。
- basil
- ベストアンサー率35% (148/420)
JavaScriptで正規表現をあまり使わないので自信は無いんですが... 正規表現は "\s*$" になります。 これを "" と置換すればよいわけで、 mmlさんの関数を使うとすると str.replace(/\s*$/g, "") になるんでしょうかね
- mml
- ベストアンサー率55% (5/9)
自分に対して情けないレスです(^^; よく考えたら str.replace(/ $/g, "") では文最後のスペース1文字分しか変換できてませんね(苦笑)gオプションの意味もないし。 うーむ。お役に立てなくて m(_ _)m #ちゃんとテストしてから書き込まないといけないっすね
たぶんこれでできると思いますが、 HTMLって、複数の空白って、1つに してしまうのでは? <SCRIPT language="JavaScript"> var str = "abc "; window.document.write("",str,"<BR>"); len = str.length; for(i = len-1; i >= 0; i--) { var character = str.charAt(i); if(character == " ") { continue; } else { break; } } window.document.write("",str); だめなときは補足してください。 ではでは☆