Flutter巴西企业注册号和个人身份证号验证插件cnpj_cpf_helper_nullsafety的使用
Flutter巴西企业注册号和个人身份证号验证插件cnpj_cpf_helper_nullsafety的使用
本库帮助进行CNPJ(企业文档)和CPF(个人文档)的验证。CNPJ和CPF都是巴西特有的文档。
使用方法
以下是一个简单的使用示例:
import 'package:cnpj_cpf_helper_nullsafety/cnpj_cpf_helper_nullsafety.dart';
void main() {
// 生成随机的CNPJ
var _cnpj = CnpjCpfBase.randomCnpj(withMask: true);
print('一个随机的CNPJ: $_cnpj');
// 对CNPJ进行掩码处理
var _fromCnpj = '26954374000130';
_cnpj = CnpjCpfBase.maskCnpj(_fromCnpj);
print('对CNPJ进行掩码处理,从$_fromCnpj到$_cnpj');
// 部分掩码处理
_fromCnpj = '2695437';
_cnpj = CnpjCpfBase.maskCnpj(_fromCnpj);
print('部分掩码处理,从$_fromCnpj到$_cnpj');
// 去除CNPJ的掩码
_fromCnpj = '03.451.682/0001-47';
_cnpj = CnpjCpfBase.onlyNumbers(_fromCnpj);
print('去除CNPJ的掩码,从$_fromCnpj到$_cnpj');
// 验证CNPJ
// 有两种验证方式
// 第一种是最简单的,直接返回布尔值
if (CnpjCpfBase.isCnpjValid(_cnpj)) {
print('$_cnpj 是有效的CNPJ');
}
// 第二种返回一个枚举值来描述状态
_cnpj = '48.608.581/0005-00'; // 数字无效
var _status = CnpjCpfBase.cnpjValidate(_cnpj);
switch (_status) {
case EDocumentStatus.DIGIT:
print('CNPJ的数字无效!');
break;
case EDocumentStatus.FORMAT:
print('CNPJ的格式错误!');
break;
case EDocumentStatus.EMPTY:
print('CNPJ为空!');
break;
default:
print('$_cnpj 是有效的CNPJ');
}
// 生成随机的CPF
var _cpf = CnpjCpfBase.randomCpf(withMask: true);
print('一个随机的CPF: $_cpf');
// 对CPF进行掩码处理
var _fromCpf = '89638567040';
_cpf = CnpjCpfBase.maskCpf(_fromCpf);
print('对CPF进行掩码处理,从$_fromCpf到$_cpf');
// 部分掩码处理
_fromCpf = '89638567';
_cpf = CnpjCpfBase.maskCpf(_fromCpf);
print('部分掩码处理,从$_fromCpf到$_cpf');
// 去除CPF的掩码
_fromCpf = '510.867.680-86';
_cpf = CnpjCpfBase.onlyNumbers(_fromCpf);
print('去除CPF的掩码,从$_fromCpf到$_cpf');
// 验证CPF
// 有两种验证方式
// 第一种是最简单的,直接返回布尔值
if (CnpjCpfBase.isCpfValid(_cpf)) {
print('$_cpf 是有效的CPF');
}
// 第二种返回一个枚举值来描述状态
_cpf = '';
_status = CnpjCpfBase.cpfValidate(_cpf);
switch (_status) {
case EDocumentStatus.DIGIT:
print('CPF的数字无效!');
break;
case EDocumentStatus.FORMAT:
print('CPF的格式错误!');
break;
case EDocumentStatus.EMPTY:
print('CPF为空!');
break;
default:
print('$_cpf 是有效的CPF');
}
}
更多关于Flutter巴西企业注册号和个人身份证号验证插件cnpj_cpf_helper_nullsafety的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter巴西企业注册号和个人身份证号验证插件cnpj_cpf_helper_nullsafety的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个关于如何使用Flutter插件 cnpj_cpf_helper_nullsafety
来验证巴西企业注册号(CNPJ)和个人身份证号(CPF)的示例代码。这个插件支持空安全(null safety),因此在Flutter 2.x及以上版本中应该能够正常运行。
首先,确保你已经在你的 pubspec.yaml
文件中添加了该插件的依赖:
dependencies:
flutter:
sdk: flutter
cnpj_cpf_helper_nullsafety: ^最新版本号 # 请替换为实际的最新版本号
然后,运行 flutter pub get
来获取依赖。
接下来是一个完整的示例代码,展示如何使用这个插件进行CNPJ和CPF的验证:
import 'package:flutter/material.dart';
import 'package:cnpj_cpf_helper_nullsafety/cnpj_cpf_helper_nullsafety.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'CNPJ/CPF Validator',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: CnpjCpfValidatorScreen(),
);
}
}
class CnpjCpfValidatorScreen extends StatefulWidget {
@override
_CnpjCpfValidatorScreenState createState() => _CnpjCpfValidatorScreenState();
}
class _CnpjCpfValidatorScreenState extends State<CnpjCpfValidatorScreen> {
final TextEditingController cnpjController = TextEditingController();
final TextEditingController cpfController = TextEditingController();
String cnpjResult = '';
String cpfResult = '';
void validateCnpj() {
String cnpj = cnpjController.text.replaceAll("[^\\d]", ""); // Remove non-digit characters
if (CnpjCpfHelper.isValidCnpj(cnpj)) {
setState(() {
cnpjResult = 'Valid CNPJ';
});
} else {
setState(() {
cnpjResult = 'Invalid CNPJ';
});
}
}
void validateCpf() {
String cpf = cpfController.text.replaceAll("[^\\d]", ""); // Remove non-digit characters
if (CnpjCpfHelper.isValidCpf(cpf)) {
setState(() {
cpfResult = 'Valid CPF';
});
} else {
setState(() {
cpfResult = 'Invalid CPF';
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('CNPJ/CPF Validator'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextField(
controller: cnpjController,
decoration: InputDecoration(
labelText: 'CNPJ',
),
),
SizedBox(height: 16),
TextButton(
onPressed: validateCnpj,
child: Text('Validate CNPJ'),
),
SizedBox(height: 16),
Text(cnpjResult),
SizedBox(height: 32),
TextField(
controller: cpfController,
decoration: InputDecoration(
labelText: 'CPF',
),
),
SizedBox(height: 16),
TextButton(
onPressed: validateCpf,
child: Text('Validate CPF'),
),
SizedBox(height: 16),
Text(cpfResult),
],
),
),
);
}
}
在这个示例中,我们创建了一个简单的Flutter应用,包含两个 TextField
用于输入CNPJ和CPF,以及两个 TextButton
用于触发验证。CnpjCpfHelper
类的 isValidCnpj
和 isValidCpf
方法用于验证输入的CNPJ和CPF是否有效,并更新UI显示结果。
确保你已经按照步骤正确添加了依赖,并且运行了 flutter pub get
来获取依赖。然后运行这个Flutter应用,你应该能够输入CNPJ和CPF并验证它们的有效性。