axiy

English summary. Small, dependency-free Dart utilities from the Axiy team. It works in any Dart or Flutter app. The first one is an email validator: isValidEmail answers yes or no, and validateEmail returns an EmailError that says why an address was rejected, so a form can show a precise message. The rest of this page is in Uzbek.


Axiy jamoasining kichik, bog'liqliksiz Dart yordamchilari. Har qanday Dart yoki Flutter ilovasida ishlaydi.

O'rnatish

dart pub add axiy

Emailni tekshirish

import 'package:axiy/axiy.dart';

isValidEmail('ali@axiy.uz'); // true
'ali@axiy'.isValidEmail; // false

switch (validateEmail(email)) {
  case null:
    print('To\'g\'ri');
  case EmailError.missingAt:
    print('"@" belgisi yo\'q');
  case EmailError.invalidDomain:
    print('Domen noto\'g\'ri, masalan: axiy.uz');
  case final error:
    print('Email noto\'g\'ri: ${error.name}');
}

Flutter formasida:

TextFormField(
  validator: (value) =>
      isValidEmail(value ?? '') ? null : 'Email noto\'g\'ri',
)

Qoidalar

validateEmail RFC 5321 ning keng tarqalgan nom@domen.uz ko'rinishini qabul qiladi:

  • butun manzil 254, @ dan oldingi qism 64 belgidan oshmaydi;
  • @ dan oldingi qism: harf, raqam va !#$%&'*+/=?^_`{|}~- belgilari, nuqta boshida, oxirida yoki ketma-ket kelmaydi;
  • domen kamida ikki qismdan iborat (axiy.uz), har bir qism 1–63 belgi, harf, raqam va - (boshida yoki oxirida emas), oxirgi qism faqat harflardan (kamida 2 ta).

Bo'sh joylar kesilmaydi (' ali@axiy.uz' noto'g'ri), shuning uchun kerak bo'lsa avval trim() qiling. Qo'shtirnoqli nomlar ("a b"@x.uz), IP domenlar (a@[127.0.0.1]) va lotin bo'lmagan harflar qabul qilinmaydi. Manzil haqiqatan mavjudligini bilish uchun unga xat yuborib tasdiqlating.

EmailError qiymatlari: empty, tooLong, missingAt, emptyLocalPart, localPartTooLong, invalidLocalPart, emptyDomain, invalidDomain.

Libraries

axiy
Small, dependency-free utilities from the Axiy team.