【JavaScript】文字列が半角かどうかをチェックする方法

JavaScriptを使って文字列が半角かどうかをチェックする方法を2つ紹介します。どちらの方法も正規表現と文字コードを利用して、文字列が半角かどうかを判断します。

全ての文字が半角かどうかチェックする

まず、文字列が全て半角文字で構成されているかどうかをチェックする方法を紹介します。これには、正規表現を使います。

function isHalfWidth(str) {
  // 半角文字のみを許可する正規表現
  const halfWidthPattern = /^[\x20-\x7E]*$/;
  return halfWidthPattern.test(str);
}

// 使用例
console.log(isHalfWidth("Hello")); // true
console.log(isHalfWidth("こんにちは")); // false
console.log(isHalfWidth("Hello 123!")); // true
console.log(isHalfWidth("Hello こんにちは")); // false

この関数 isHalfWidth は、入力された文字列が全て半角文字で構成されているかをチェックします。正規表現 ^[\x20-\x7E]*$ は、半角スペースからチルダ(~)までの文字のみを許可します。テストケースを見ても分かるように、全ての文字が半角の場合は true を返し、そうでない場合は false を返します。

文字列に半角以外の文字が含まれていないかチェックする

次に、文字列の各文字が半角かどうかを一つずつチェックする方法を紹介します。これには、文字コードを利用します。

function containsOnlyHalfWidth(str) {
  for (let i = 0; i < str.length; i++) {
    if (str.charCodeAt(i) > 0xFF) {
      return false;
    }
  }
  return true;
}

// 使用例
console.log(containsOnlyHalfWidth("Hello")); // true
console.log(containsOnlyHalfWidth("こんにちは")); // false
console.log(containsOnlyHalfWidth("Hello 123!")); // true
console.log(containsOnlyHalfWidth("Hello こんにちは")); // false

この関数 containsOnlyHalfWidth は、文字列の各文字が半角文字かどうかを一つずつチェックします。charCodeAt メソッドを使って各文字の文字コードを取得し、それが 0xFF より大きい場合は全角文字と見なします。この場合、関数は false を返します。全ての文字が半角である場合は true を返します。

まとめ

JavaScriptで文字列が半角かどうかをチェックする方法を2つ紹介しました。正規表現を使う方法と、文字コードを使う方法があります。用途や状況に応じて、これらの方法を使い分けてください。どちらの方法も簡単に実装でき、効率的に文字列のチェックを行うことができます。