入力チェックなどに使える半角文字チェックです。
正規表現を使ってマッチするかどうかだけです。
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文字以上)にするとよい。
/^[ -~]+$/