Flutter国际银行账号校验插件flutter_iban_tools的使用

Flutter国际银行账号校验插件flutter_iban_tools的使用

License GitHub last commit GitHub contributors GitHub issues GitHub closed issues GitHub pull requests GitHub closed pull requests No deps

关于

Flutter IBANTools 是一个用于 Flutter/Dart 的库,用于验证、创建和提取 IBAN(国际银行账户号码)、BBAN(银行基本账户号码)和 BIC/SWIFT(银行识别码)。

有关 IBAN/BBAN 的更多信息,请参阅 wikipedia 页面IBAN 注册表

有关 BIC/SWIFT 的更多信息,请参阅 ISO 9362 这个 wikipedia 页面

安装

Flutter/Dart

$ flutter pub add flutter_iban_tools

使用

查看 完整文档 以获取更多示例。

Flutter/Dart

import 'package:flutter_iban_tools/flutter_iban_tools.dart' as ibantools;

void main() {
  // 将银行账号转换为电子格式
  final String? iban = ibantools.electronicFormatIBAN('NL91 ABNA 0417 1643 00'); // 'NL91ABNA0517164300'
  
  // 验证 IBAN 是否有效
  bool isValid = ibantools.isValidIBAN(iban);

  // 如果需要知道 IBAN 无效的原因
  var validationResult = ibantools.validateIBAN('NL91ABNA0517164300'); 
  // 返回结果: { valid: false, errorCodes: [iban.ValidationErrorsIBAN.WrongIBANChecksum] }

  // 验证 BIC
  bool isValidBIC = ibantools.isValidBIC('ABNANL2A');
}

扩展功能

国家规范可以通过调用 setCountryBBANValidation 方法进行扩展。示例如下:

import 'package:flutter_iban_tools/flutter_iban_tools.dart' as ibantools;

void setCustomBBANValidation() {
  ibantools.setCountryBBANValidation(
    countryCode: 'NL', // 荷兰
    length: 18, // BBAN 长度为 18
    format: r'^\d{18}$', // BBAN 必须是 18 位数字
  );
}

void main() {
  setCustomBBANValidation();

  // 现在可以验证荷兰的 BBAN
  bool isValidBBAN = ibantools.isValidBBAN('123456789012345678', 'NL');
}

示例代码

import 'package:flutter/material.dart';
import 'package:flutter_iban_tools/flutter_iban_tools.dart' as ibantools;

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  final bool isValidIBAN = ibantools.isValidIBAN('DE64 5001 0517 9423 8144 35');
  debugPrint('IBAN is valid: ${isValidIBAN}');
}

更多关于Flutter国际银行账号校验插件flutter_iban_tools的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter国际银行账号校验插件flutter_iban_tools的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用flutter_iban_tools插件来进行国际银行账号(IBAN)校验的示例代码。

首先,确保你已经在pubspec.yaml文件中添加了flutter_iban_tools依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_iban_tools: ^x.y.z  # 请替换为最新版本号

然后,运行flutter pub get来安装依赖。

接下来,在你的Dart文件中,你可以使用flutter_iban_tools提供的功能来校验IBAN。以下是一个完整的示例代码:

import 'package:flutter/material.dart';
import 'package:flutter_iban_tools/flutter_iban_tools.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'IBAN Validation Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: IbanValidationScreen(),
    );
  }
}

class IbanValidationScreen extends StatefulWidget {
  @override
  _IbanValidationScreenState createState() => _IbanValidationScreenState();
}

class _IbanValidationScreenState extends State<IbanValidationScreen> {
  final TextEditingController _ibanController = TextEditingController();
  String? _validationResult;

  void _validateIban() async {
    String iban = _ibanController.text.trim();
    try {
      bool isValid = await IbanValidator.validate(iban);
      setState(() {
        _validationResult = isValid ? 'IBAN is valid' : 'IBAN is invalid';
      });
    } catch (e) {
      setState(() {
        _validationResult = 'Error validating IBAN: ${e.message}';
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('IBAN Validation Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            TextField(
              controller: _ibanController,
              decoration: InputDecoration(
                labelText: 'Enter IBAN',
              ),
              keyboardType: TextInputType.text,
            ),
            SizedBox(height: 16),
            ElevatedButton(
              onPressed: _validateIban,
              child: Text('Validate IBAN'),
            ),
            SizedBox(height: 16),
            Text(
              _validationResult ?? '',
              style: TextStyle(color: Colors.redAccent),
            ),
          ],
        ),
      ),
    );
  }

  @override
  void dispose() {
    _ibanController.dispose();
    super.dispose();
  }
}

在这个示例中,我们创建了一个简单的Flutter应用,包含一个文本输入框用于输入IBAN,一个按钮用于触发验证,以及一个文本显示验证结果。

以下是代码的关键部分:

  1. 导入flutter_iban_tools

    import 'package:flutter_iban_tools/flutter_iban_tools.dart';
    
  2. 创建一个文本控制器

    final TextEditingController _ibanController = TextEditingController();
    
  3. 定义验证IBAN的方法

    void _validateIban() async {
      String iban = _ibanController.text.trim();
      try {
        bool isValid = await IbanValidator.validate(iban);
        setState(() {
          _validationResult = isValid ? 'IBAN is valid' : 'IBAN is invalid';
        });
      } catch (e) {
        setState(() {
          _validationResult = 'Error validating IBAN: ${e.message}';
        });
      }
    }
    
  4. 在UI中触发验证

    ElevatedButton(
      onPressed: _validateIban,
      child: Text('Validate IBAN'),
    ),
    

这个示例展示了如何使用flutter_iban_tools插件来校验用户输入的IBAN。你可以根据需要进一步扩展这个示例,例如添加更多的错误处理或UI美化。

回到顶部