3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

スペースの連続入力を弾く入力フォームの作り方

Last updated at Posted at 2019-05-27

作りたいもの

以下のようなエラーチェックを行う入力フォーム

OKな例
・山田太郎
・山田 太郎(間に半角スペース1個)
・山田 太郎(間に全角スペース1個)
・山田  太郎(間に全角スペース2個)
・山田 アンデルセン 太郎(間に全角スペース1個ずつ)

エラーを吐きたい例
・「 」←半角スペース1個のみ
・「 」←全角スペース1個のみ
・「 」←半角スペース2個連続
・「  」←全角スペース2個連続

名前の間に入るスペースは通すけど、スペースだけの入力は許容しない、といった感じ。

使ったもの

Javascript, 正規表現

実装

let str = '山田 太郎';
let pattern = /^\u3000*$/g;// 1文字以上の全角スペース

if(str.match(pattern) != null){
  // OK
} else {
  // NG:スペースのみの入力
}
正規表現 意味
/^\u3000*$/g 1文字以上の全角スペース
* 直前の文字の0文字以上の繰返し
^ 文字列の先頭
$ 文字列の末尾
/^正規表現$/ 任意の正規表現に完全一致する文字列
/正規表現/g 全ての文字についてマッチするかどうかを検査
半角スペースの場合は/^\x20+$/gで同じことができる。

\u3000ではなく「 」で全角スペースを直書きしても良いが、Lintエラーに引っかかることがあるのでこっちのほうがよい。

参考

3
2
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?