Line data Source code
1 : import 'package:flutter/services.dart'; 2 : import 'package:folly_fields/util/mask_text_input_formatter.dart'; 3 : import 'package:folly_fields/validators/abstract_validator.dart'; 4 : 5 : /// 6 : /// 7 : /// 8 : class CepValidator extends AbstractValidator<String> { 9 : /// 10 : /// 11 : /// 12 1 : CepValidator() 13 1 : : super( 14 1 : <TextInputFormatter>[ 15 1 : MaskTextInputFormatter( 16 : mask: '##.###-###', 17 : ), 18 : ], 19 : ); 20 : 21 : /// 22 : /// 23 : /// 24 1 : @override 25 2 : String format(String value) => strip(value).replaceAllMapped( 26 1 : RegExp(r'^(\d{2})(\d{3})(\d{3})$'), 27 5 : (Match m) => '${m[1]}.${m[2]}-${m[3]}', 28 : ); 29 : 30 : /// 31 : /// 32 : /// 33 1 : @override 34 : TextInputType get keyboard => TextInputType.number; 35 : 36 : /// 37 : /// 38 : /// 39 1 : @override 40 3 : bool isValid(String value) => strip(value).length == 8; 41 : }