作りたいもの
以下のようなエラーチェックを行う入力フォーム
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エラーに引っかかることがあるのでこっちのほうがよい。
参考