axiy 0.1.0
axiy: ^0.1.0 copied to clipboard
Small, dependency-free utilities from the Axiy team. Starts with an email address validator that explains why an address was rejected.
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.