1. ホーム
  2. javascript

[解決済み] 英数字、ダッシュ、アンダースコア、スペースなしの正規表現チェック JavaScript

2022-11-03 17:28:06

質問

正規表現で入力をチェックしようとしています。

このフィールドでは、英数字、ダッシュ、アンダースコアのみを許可し、スペースは許可してはいけません。

しかし、以下のコードではスペースを許可しています。

何が足りないのでしょうか?

var regexp = /^[a-zA-Z0-9\-\_]$/;
var check = "checkme";
if (check.search(regexp) == -1)
    { alert('invalid'); }
else
    { alert('valid'); }

どのように解決するのですか?

<ブロッククオート

しかし、以下のコードでは空白を許容しています。

いいえ、そんなことはありません。 ただし、長さが 1 の入力にのみマッチします。 長さが 1 以上の入力には + を文字クラスの後に記述してください。

var regexp = /^[a-zA-Z0-9-_]+$/;
var check = "checkme";
if (check.search(regexp) === -1)
    { alert('invalid'); }
else
    { alert('valid'); }

ただし - (この例では) も _ もエスケープが必要です。