• ベストアンサー

文字列後にあるスペースを削除

たとえばですね... JavaScript内の変数に"abc  "のように文字列の後側にスペース(1バイト文字)が 入っていた場合、スペースを取り除き"abc"という文字列にする 関数をご存知ないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • mml
  • ベストアンサー率55% (5/9)
回答No.2

正規表現でこんなんどうでしょう? ただ IE4/NN4以上が対象のはずです(未確認) str = "abc "; document.write("|" + str.replace(/ $/g, "") + "|<BR>"); ※|は単にスペースが消えているかをチェックするために付けているだけです(笑) これで文末($)の連続する(g)スペースを""に置換しています。 str.replace(/ $/g, "") 正規表現を駆使すればもっといろいろできるはずです。 詳しくは正規表現関連を・・・(^^;

参考URL:
http://wakusei.cplaza.ne.jp/twn/www.htm

その他の回答 (4)

  • basil
  • ベストアンサー率35% (148/420)
回答No.5

不安になったので自分で試してみました。 やっぱり私の回答は間違いでした...。 正規表現には "\s+$" が適当で、 関数も  str.replace(/\s+$/g, "") で動作しました。 たとえば...  aaa = "hoge ";  bbb = aaa.replace(/\s+$/g, ""); とすると、bbb の中身は "hoge" になります。

  • basil
  • ベストアンサー率35% (148/420)
回答No.4

JavaScriptで正規表現をあまり使わないので自信は無いんですが... 正規表現は "\s*$" になります。 これを "" と置換すればよいわけで、 mmlさんの関数を使うとすると  str.replace(/\s*$/g, "") になるんでしょうかね

  • mml
  • ベストアンサー率55% (5/9)
回答No.3

自分に対して情けないレスです(^^; よく考えたら str.replace(/ $/g, "") では文最後のスペース1文字分しか変換できてませんね(苦笑)gオプションの意味もないし。 うーむ。お役に立てなくて m(_ _)m #ちゃんとテストしてから書き込まないといけないっすね

noname#9414
noname#9414
回答No.1

たぶんこれでできると思いますが、 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); だめなときは補足してください。 ではでは☆

関連するQ&A