Flutter CNPJ/CPF格式化插件cnpj_cpf_formatter_nullsafety的使用
Flutter CNPJ/CPF格式化插件cnpj_cpf_formatter_nullsafety的使用
这个库帮助处理CNPJ和CPF格式化。CNPJ是商业文件,CPF是个人文件,两者都是巴西文档。
使用方法
CPF格式化
TextField(
decoration: InputDecoration(
labelText: 'CPF',
helperText: '仅格式化CPF',
),
inputFormatters: [
CnpjCpfFormatter(
eDocumentType: EDocumentType.CPF,
)
],
)
CNPJ格式化
TextField(
decoration: InputDecoration(
labelText: 'CNPJ',
helperText: '仅格式化CNPJ',
),
inputFormatters: [
CnpjCpfFormatter(
eDocumentType: EDocumentType.CNPJ,
)
],
)
同时格式化CNPJ和CPF
TextField(
decoration: InputDecoration(
labelText: 'CNPJ/CPF',
helperText: '同时格式化CNPJ和CPF',
),
inputFormatters: [
CnpjCpfFormatter(
eDocumentType: EDocumentType.BOTH,
)
],
)
示例代码
以下是完整的示例代码:
import 'package:flutter/material.dart';
import 'package:cnpj_cpf_formatter_nullsafety/cnpj_cpf_formatter_nullsafety.dart';
void main() => runApp(App());
class App extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
[@override](/user/override)
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
body: Padding(
padding: const EdgeInsets.all(8),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
// 仅格式化CPF
TextField(
decoration: InputDecoration(
labelText: 'CPF',
helperText: '仅格式化CPF',
),
inputFormatters: [
CnpjCpfFormatter(
eDocumentType: EDocumentType.CPF,
)
],
),
SizedBox(
height: 16,
),
// 仅格式化CNPJ
TextField(
decoration: InputDecoration(
labelText: 'CNPJ',
helperText: '仅格式化CNPJ',
),
inputFormatters: [
CnpjCpfFormatter(
eDocumentType: EDocumentType.CNPJ,
)
],
),
SizedBox(
height: 16,
),
// 同时格式化CNPJ和CPF
TextField(
decoration: InputDecoration(
labelText: 'CNPJ/CPF',
helperText: '同时格式化CNPJ和CPF',
),
inputFormatters: [
CnpjCpfFormatter(
eDocumentType: EDocumentType.BOTH,
)
],
)
],
),
),
);
}
}
更多关于Flutter CNPJ/CPF格式化插件cnpj_cpf_formatter_nullsafety的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter CNPJ/CPF格式化插件cnpj_cpf_formatter_nullsafety的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
cnpj_cpf_formatter_nullsafety
是一个 Flutter 插件,用于在输入 CNPJ 或 CPF 时自动格式化这些号码。它支持空安全(null safety),并且可以轻松地集成到你的 Flutter 应用中。
安装插件
首先,你需要在 pubspec.yaml
文件中添加 cnpj_cpf_formatter_nullsafety
插件的依赖:
dependencies:
flutter:
sdk: flutter
cnpj_cpf_formatter_nullsafety: ^1.0.0
然后运行 flutter pub get
来安装插件。
使用插件
在你的 Dart 文件中,导入插件:
import 'package:cnpj_cpf_formatter_nullsafety/cnpj_cpf_formatter_nullsafety.dart';
使用 CnpjCpfFormatter
widget
CnpjCpfFormatter
是一个 TextFormField
的包装器,它会自动根据输入的号码类型(CNPJ 或 CPF)进行格式化。
class MyForm extends StatelessWidget {
final _formKey = GlobalKey<FormState>();
final _cnpjCpfController = TextEditingController();
[@override](/user/override)
Widget build(BuildContext context) {
return Form(
key: _formKey,
child: Column(
children: [
CnpjCpfFormatter(
controller: _cnpjCpfController,
decoration: InputDecoration(
labelText: 'CNPJ/CPF',
hintText: 'Digite o CNPJ ou CPF',
),
validator: (value) {
if (value == null || value.isEmpty) {
return 'Por favor, insira um CNPJ ou CPF';
}
return null;
},
),
ElevatedButton(
onPressed: () {
if (_formKey.currentState!.validate()) {
// 处理表单提交
print('CNPJ/CPF: ${_cnpjCpfController.text}');
}
},
child: Text('Enviar'),
),
],
),
);
}
}
主要功能
- 自动格式化: 当用户输入 CNPJ 或 CPF 时,插件会自动添加格式化的符号(如
.
、/
和-
)。 - 智能识别: 插件会根据输入的长度自动识别是 CNPJ 还是 CPF,并进行相应的格式化。
- 空安全: 插件支持空安全,确保在空安全环境中使用时的安全性。
示例
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('CNPJ/CPF Formatter Example'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: MyForm(),
),
),
);
}
}