• 締切済み

先頭 中央 末尾 スぺースチェック

ある文字列の先頭と末尾の全角スペースを削除し、文字列の途中での(全角または半角)スペースは1つだけ残る(複数入った場合)のチェックはどうしたら要いいでしょうか? ご教授願います。

みんなの回答

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.5

どうすればって もう書いたじゃない。 もう一回表現を変えて書いてあげるわね。 あなたが一番下で提示しているロジックの replace処理の後に もう一回replaceしてあげる必要があるの。 次のreplace文は 全角スペースが1つ以上あったら1つに置き換える という感じになるわね。

laoyu
質問者

お礼

何回も教えていただきまして、ありがとうございました。

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.4

何なの?そのif文? \sを入れているってことは全角スペース以外も対象になっているのね。 > やはりうまく行かなかったのはなぜ 具体的にどう上手くいかなかったのか書いてくれないと困るわ。 そもそも "  あああ   いいい  ううう   " が "あああ いいい ううう" でいいのかにも答えてくれてないから あなたの目標がまだわかっていないのよ。 まあこれが目標って思い込むけど。 if文の謎はおいておいて あなたのreplaceだと 両端のスペースは取り除けても 真ん中が処理できないのではなくて? 真ん中のを処理するにはもう一回replaceが必要だわ。 1回のreplaceではどうすることもできないから必ず2回必要なの。 次のreplace文は 全角スペースが1つ以上あったら1つに置き換える という感じになるわね。

laoyu
質問者

補足

>"  あああ   いいい  ううう   "       ↓↓ >"あああ いいい ううう" はっきり言わなかった、すみません。 askaaskaさんの言ったような結果になるには、どうすればよいでしょう?

noname#84373
noname#84373
回答No.3

2です。訂正です。こんなの? alert('  文 字 列 1  '.replace(/^ +| +$/gm,'').split(/ | /gm).length+'ある');

noname#84373
noname#84373
回答No.2

alert(' 文 字 列 1 '.replace(/^ | $/gm,'').split(/ | /gm).length+'ある');

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

"  あああ   いいい  ううう   " が "あああ いいい ううう" になるってことかしら。 replaceで正規表現を使えば2行でできるわよ。

laoyu
質問者

お礼

ありがとうございました、 実は自分のはほうは以下のように書いてみましたが、やはりうまく行かなかったのはなぜ? もしよかったら、またご教授をお願いします。 <%@ page contentType="text/html; charset=Windows-31J" %> <HTML> <HEAD> <TITLE>テスト</TITLE> <SCRIPT type ="text/JavaScript"> function trim(str){ // 前後の全角・半角スペースを削除 if( str = str.replace(/^[\s ]+|[\s ]+$/g,"")){ // オブジェクトの中身を str にし、str を返す return str; } } //--> </SCRIPT> </HEAD> <BODY> <FORM NAME="testForm" METHOD="post" ACTION="/jsptest/test.jsp"> <TEXTAREA WRAP="hard" NAME="str"></TEXTAREA> <INPUT TYPE="button" VALUE="送信" ONCLICK="trim()"> </FORM> <% String str = request.getParameter("str"); %> あなたの送信した情報は【<%=str%>】です。 </BODY> </HTML>

関連するQ&A

専門家に質問してみよう