入力必須にする
<input type="text" name="hoge" required>文字数制限
<input type="text" name="hoge" required minlength="5">
<input type="text" name="hoge" required maxlength="20">文字数を制限しても、0文字での送信はできてしまうので、入力必須にしたい場合にはrequiredを指定する必要があります。
パターン制限
<!-- メールアドレス -->
<input type="email" name="hoge" required pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$">
<!-- 電話番号(ハイフンなし) -->
<input type="tel" name="hoge" required pattern="^0\d{9,10}$">
<!-- URL -->
<input type="url" name="hoge" required pattern="https?://.+">パターンを指定しても、空文字での送信はできてしまうので、入力必須にしたい場合にはrequiredを指定する必要があります。
ファイルの拡張子を制限
<input type="file" name="image" accept="image/png,image/jpeg,image/gif">