ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|---|
|
Laravel バリデーション
// FormRequest
public function rules()
{
return [
'name' => 'required|string|max:100', // 100 文字以内
'username' => 'required|min:3|max:30', // 3-30 文字
'description' => 'nullable|string|max:500',
'tag' => 'required|size:5', // ちょうど 5 文字
'phone' => 'required|regex:/^[0-9]{10,11}$/', // 10-11 桁の数字
];
}
// コントローラ
$request->validate([
'title' => 'required|max:200',
'content' => 'required|max:65535', // TEXT カラム
]);
// カスタムメッセージ
public function messages()
{
return [
'name.max' => '名前は :max 文字以内で入力してください',
'name.min' => '名前は :min 文字以上で入力してください',
];
}
主要バリデーションルール
| ルール | 意味 |
|---|---|
min:N | 最小 N 文字 (文字列) / 最小値 N (数値) |
max:N | 最大 N 文字 (文字列) / 最大値 N (数値) |
size:N | ちょうど N 文字 |
between:min,max | min 〜 max 文字 |
digits:N | N 桁の数字 |
digits_between:min,max | min 〜 max 桁の数字 |
PHP 標準関数
100) { ... } // ❌ 日本語だと予期しない結果
if (mb_strlen($name) > 100) { ... } // ✅ 正確に文字数
JavaScript での文字列長
// length プロパティ (基本)
"Hello".length; // 5
"こんにちは".length; // 5 (UTF-16 コードユニット数)
"𝄞".length; // 2 (サロゲートペア)
// 正確な文字数 (Unicode コードポイント)
[..."𝄞"].length; // 1
Array.from("𝄞").length; // 1
// バイト数 (UTF-8)
new Blob([str]).size; // 正確な UTF-8 バイト数
new TextEncoder().encode(str).length; // 同上
// 実例
const text = "Hello, 世界! 🌍";
console.log(text.length); // 12
console.log([...text].length); // 11 (絵文字 1 つ)
console.log(new TextEncoder().encode(text).length); // 18 (UTF-8 バイト)
フロント側のリアルタイム文字数表示
0 / 100
{{ text.length }} / 100
DB カラム制約
-- VARCHAR(100): 最大 100 文字
CREATE TABLE users (
name VARCHAR(100) NOT NULL
);
-- CHECK 制約 (より厳密、PostgreSQL/SQL Server)
CREATE TABLE users (
name VARCHAR(100) NOT NULL CHECK (CHAR_LENGTH(name) >= 3)
);
-- MySQL でも 8+ で CHECK 制約サポート
CREATE TABLE users (
name VARCHAR(100) NOT NULL CHECK (CHAR_LENGTH(name) BETWEEN 3 AND 100)
);
-- 注意: VARCHAR は「文字数」、CHAR_LENGTH も「文字数」
-- LENGTH() はバイト数 (区別に注意)
UTF-8 ストレージサイズの理解
| 文字種 | UTF-8 バイト数 | 例 |
|---|---|---|
| ASCII (英数字 / 記号) | 1 バイト | A, 0, ! |
| ラテン拡張 (アクセント文字等) | 2 バイト | é, ñ |
| 日本語・中国語・韓国語 | 3 バイト | あ, 漢, 한 |
| 絵文字・補助平面 | 4 バイト | 😀, 🌍 |
MySQL の utf8mb4 文字セット使用時、VARCHAR(100) = 最大 400 バイト。
正規表現での検証
// 半角英数字 5-20 文字
'username' => 'required|regex:/^[a-zA-Z0-9]{5,20}$/'
// 日本語 1-30 文字
'name' => 'required|regex:/^[ぁ-んァ-ヶ一-龯]{1,30}$/u'
// 電話番号 (ハイフン区切り or なし)
'phone' => 'required|regex:/^0\d{1,4}-?\d{1,4}-?\d{4}$/'
// 郵便番号
'zip' => 'required|regex:/^\d{3}-?\d{4}$/'
関連記事
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?