VIRASTACKMask
  • Hakkında
  • Katkı
ViraStack Mask

Başlangıç

  • Giriş
  • llms.txt

Kullanım

  • useViraMask()
  • Özel maske
  • Validation
  • Helpers
  • Types
  • UI kütüphaneleri

Örnekler

  • Tümü
  • Alpha
  • CVV
  • E-posta
  • IBAN
  • Kart
  • Kredi kartı formu
  • Kullanıcı adı
  • Metin
  • Para birimi
  • Parola
  • Posta kodu
  • Sayısal
  • Son kullanma
  • Tarih
  • TCKN
  • Telefon
  • URL
  • Vergi no (VKN)

Custom mask

Hazır maske yetmediğinde kendi maske dizginizi ve MaskOptions alanlarını kullanın.

Sözdizimi

Maske dizgisindeki özel token’lar:

TokenAnlam
9Rakam (0–9)
a / AHarf (a–z). Büyük/küçük için transform kullanın
*Herhangi bir karakter
DiğerLiteral ayırıcı ( , /, (, )…)

rawValue: —

value: —

const form = useForm({ defaultValues: { code: "" } })
 
const { code } = useViraMask({
  form,
  schema: {
    code: {
      mask: "aaa-999",
      transform: "uppercase",
    },
  },
})
 
const { rawValue, ...inputProps } = code
 
<input {...inputProps} placeholder="ABC-123" />

MaskOptions

Sık kullanılan alanlar:

  • mask: pattern dizgisi
  • transform: uppercase | lowercase
  • allowedChars / forbiddenChars
  • displayPrefix: gösterilir, ham değere yazılmaz (IBAN’daki TR)
  • currency, dateFormat, alphaFormat, usernameFormat
  • type, inputMode, autoComplete
  • preset: hazır maske üzerine override

resolveMask

Dinamik maske için resolveMask(value, allValues, schema) yeni bir maske dizgisi (veya undefined) döner. Kart (Amex) ve CVV hazır maskeleri bunu kullanır: kardeş alanlara bakarak maskeyi günceller.

{
  mask: "9999 9999 9999 9999",
  resolveMask: (value) => {
    const digits = value.replace(/\D/g, "")
    if (digits.startsWith("34") || digits.startsWith("37")) {
      return "9999 999999 99999" // Amex
    }
    return undefined
  },
}
ÖncekiuseViraMask()SonrakiValidation

Bu sayfada

  • Sözdizimi
  • MaskOptions
  • resolveMask
Hata mı var? Düzeltin