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

1 回复

更多关于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 类的 isValidCnpjisValidCpf 方法用于验证输入的CNPJ和CPF是否有效,并更新UI显示结果。

确保你已经按照步骤正确添加了依赖,并且运行了 flutter pub get 来获取依赖。然后运行这个Flutter应用,你应该能够输入CNPJ和CPF并验证它们的有效性。

回到顶部