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