質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

5165閲覧

「スペースだけの入力」、文字がある状態で「最初と最後にあるスペース」を削除したい。ただし、「文字間にあるスペース」は削除したくない

ponchoccho

総合スコア17

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/11/22 02:02

タイトル通りです。

「スペースだけの入力」
文字がある状態で「最初と最後にあるスペース」(例:「  テスト 」)
を削除したいです。(全角・半角どちらとも)

ただし、
「文字間にあるスペース」
は削除したくないです。(全角・半角どちらとも)
(例:「テスト test」)

JavaScript

1A: (function () { 2 var temp = $("#A").val(); 3 temp = temp.replace(/\s+/g, ""); 4 5 //半角→全角処理(' " < > ; : だけ) 6 var reg = /["\'\:;<>\]/g; 7 temp = temp.replace(reg, function (s) { 8 return String.fromCharCode(s.charCodeAt(0) + 65248); 9 }); 10 11 //20byte以内に抑えるための処理 12 var maxbytes = 21; 13 var mybytes = Byte.byteCount(temp); 14 15 if (!temp.match(/.+/)) { 16 swal("入力してください", "", "error"); 17 return false; 18 } else if (mybytes >= maxbytes) { 19 swal("文字数がオーバーしています", "", "error"); 20 return false; 21 } 22 return temp; 23}) 24 25///// 26 27Byte = { 28 // byte数取得 29 byteCount: (function (str) { 30 len = 0; 31 str = escape(str); 32 for (i = 0; i < str.length; i++ , len++) { 33 if (str.charAt(i) == "%") { 34 if (str.charAt(++i) == "u") { 35 i += 3; 36 len++; 37 } 38 i++; 39 } 40 } 41 return len; 42})

現状はこのようになっております。
これ( temp = temp.replace(/\s+/g, ""); )だと、
「文字間のあるスペース」も削除されてしまいます。

「#A」は別途HTMLから取得している文字列です。

文字間のあるスペースだけ残して、他のスペースを削除する方法はあるでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

一番簡単なのはtrimを使用することだと思います。
MDN String.prototype.trim()

ただし、全角スペースの削除についてはブラウザ毎に挙動が異なるそうなので、
別途対策が必要になるかもしれません。

投稿2018/11/22 02:08

madoka9393

総合スコア992

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ponchoccho

2018/11/22 02:16

ありがとうございます。 IEで使うことも多いので、trim使用する際に対策考えてみます。
guest

0

ベストアンサー

trimで前後の空白スペースを削除する方法

こちらに紹介されている方法でできませんか?

str = str.replace(/^\s+|\s+$/g,'');

投稿2018/11/22 02:06

taka-saan

総合スコア665

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ponchoccho

2018/11/22 02:15

試してみたら無事やりたいように動作されました。ありがとうございました。
guest

0

str = str.replace(/^[  ]+|[  ]+$/, "");

投稿2018/11/22 02:15

tkturbo

総合スコア5572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ponchoccho

2018/11/22 02:19

ありがとうございます、無事やりたい動作できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問