import 'package:flutter/services.dart';

class SCCustomFilteringTextInputFormatter extends TextInputFormatter {
  // 定义您想要拒绝的字符正则表达式
  // 这个例子拒绝了空格、@、#、￥、* 以及您添加的其他特殊字符
  static final RegExp _deniedRegExp = RegExp(r'[\s@#￥*$%^&+=<>]');

  @override
  TextEditingValue formatEditUpdate(
      TextEditingValue oldValue,
      TextEditingValue newValue,
      ) {
    // 如果新值处于输入法组合状态，则直接返回，不进行过滤:cite[8]
    if (newValue.isComposingRangeValid) {
      return newValue;
    }
    // 如果新值包含被拒绝的字符，则返回旧值
    if (_deniedRegExp.hasMatch(newValue.text)) {
      return oldValue;
    }
    return newValue;
  }
}