半角文字のみかどうかのチェックをする

入力チェックなどに使える半角文字チェックです。

正規表現を使ってマッチするかどうかだけです。

Program

var s = "abcdefgHIJKLMN=~|`{}*?+";
/^[\x20-\x7e]*$/.test(s); // → true

var s = "アイウabde";
/^[\x20-\x7e]*$/.test(s); // → false

関数として作ると以下のようになります。

function isHankaku(s)
{
  return /^[\x20-\x7e]*$/.test(s);
}

正規表現オブジェクトを定義しておくのもよいでしょう。

var hankaku = new RegExp(/^[\x20-\x7e]*$/);
hankaku.test("アイウエオワヲン"); // → false
hankaku.test("aiueo"); // → true

Demo

結果:

Memo

\x20 は半角スペース、\x7eは~。

ASCIIコード表で、 \x20 から \x7e までが、制御文字を除く通常の半角英数字。

以下のように書いてもよい。

/^[ -~]*$/

空欄はエラーにする場合は、*(0文字以上)を +(1文字以上)にするとよい。

/^[ -~]+$/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です