Geliştiriciler İçin Validasyon Örnekleri
Bu doküman, OpsGridForm
ile kullanılan inputlar için en yaygın validasyon kurallarını ve bu validasyonların nasıl uygulanacağını örneklerle açıklar. Her validasyon kuralı için, doğrudan kopyalayıp kendi schema
tanımınıza ekleyebileceğiniz objeler verilmiştir.
RegisterOptions Örnekleri
1. Zorunlu Alan
registerOptions: {
required: "Bu alan zorunludur",
}
2. Maksimum Uzunluk
registerOptions: {
maxLength: {
value: 200,
message: "En fazla 200 karakter olabilir",
},
}
3. Minimum ve Maksimum Değer
registerOptions: {
min: {
value: 18,
message: "Yaş en az 18 olmalıdır",
},
max: {
value: 65,
message: "Yaş en fazla 65 olabilir",
},
}
4. Belirli Bir Desen (Regex)
registerOptions: {
pattern: {
value: /^\(\d{3}\) \d{3}-\d{4}$/,
message: "Telefon numarası (555) 555-5555 formatında olmalıdır",
},
}
5. Özel Doğrulama (Custom Validator)
registerOptions: {
validate: (value) =>
value.length >= 8 || "Şifre en az 8 karakter olmalıdır",
}
Yaygın Validasyon Örnekleri
1. Zorunlu Alan
{
name: "Name",
type: FormItemTypeEnum.TEXT,
label: "Ad",
registerOptions: {
required: "Bu alan zorunludur",
},
}
2. Maksimum Uzunluk
{
name: "Description",
type: FormItemTypeEnum.TEXT,
label: "Açıklama",
registerOptions: {
maxLength: {
value: 200,
message: "En fazla 200 karakter olabilir",
},
},
}
3. Minimum ve Maksimum Değer
{
name: "Age",
type: FormItemTypeEnum.NUMBER,
label: "Yaş",
registerOptions: {
min: {
value: 18,
message: "Yaş en az 18 olmalıdır",
},
max: {
value: 65,
message: "Yaş en fazla 65 olabilir",
},
},
}
4. Belirli Bir Desen (Regex)
{
name: "Phone",
type: FormItemTypeEnum.TEL,
label: "Telefon",
registerOptions: {
pattern: {
value: /^\(\d{3}\) \d{3}-\d{4}$/,
message: "Telefon numarası (555) 555-5555 formatında olmalıdır",
},
},
}
5. Özel Doğrulama (Custom Validator)
{
name: "Password",
type: FormItemTypeEnum.TEXT,
label: "Şifre",
registerOptions: {
validate: (value) =>
value.length >= 8 || "Şifre en az 8 karakter olmalıdır",
},
}
6. Tarih Aralığı
{
name: "StartDate",
type: FormItemTypeEnum.DATE,
label: "Başlangıç Tarihi",
registerOptions: {
validate: (value) => {
const selectedDate = new Date(value);
const today = new Date();
return (
selectedDate >= today || "Başlangıç tarihi bugünden önce olamaz"
);
},
},
}
7. Email Formatı
{
name: "Email",
type: FormItemTypeEnum.EMAIL,
label: "E-posta",
registerOptions: {
pattern: {
value: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
message: "Geçerli bir e-posta adresi girin",
},
},
}
8. İki Alanın Eşleşmesi
{
name: "ConfirmPassword",
type: FormItemTypeEnum.TEXT,
label: "Şifreyi Onayla",
registerOptions: {
validate: (value, { password }) =>
value === password || "Şifreler eşleşmiyor",
},
}
9. Çoklu Seçim Minimum Seçim Sayısı
{
name: "SelectedTags",
type: FormItemTypeEnum.AUTO_COMPLETE,
label: "Etiketler",
autoCompleteProps: {
isMultiple: true,
},
registerOptions: {
validate: (value) =>
value?.length >= 2 || "En az 2 etiket seçmelisiniz",
},
}
10. Sadece Sayısal Giriş
{
name: "NumericField",
type: FormItemTypeEnum.NUMBER,
label: "Sayı",
registerOptions: {
pattern: {
value: /^[0-9]+$/,
message: "Sadece sayısal değerler kabul edilir",
},
},
}
İpuçları
- Birden Fazla Validasyon Kullanımı: Bir input için birden fazla validasyon kuralı tanımlayabilirsiniz. Örneğin, hem
required
hem demaxLength
tanımlayabilirsiniz. - Özelleştirilmiş Mesajlar: Kullanıcıya daha açıklayıcı mesajlar vermek için
message
özelliğini kullanın. - Custom Validator: İhtiyaçlarınıza göre özelleştirilmiş validasyon kuralları yazabilirsiniz.
Bu doküman, validasyon kurallarını en hızlı ve kolay şekilde uygulamanız için tasarlanmıştır. Daha fazla bilgi için ilgili diğer dokümanları inceleyebilirsiniz.