Flutter | TextField 禁止开头输入空格(正则)

2022-02-16  本文已影响0人  无夜之星辰

这是一个很常见的需求,不允许开头输空格。

class RegexUtil {
  /// 正则匹配第一个输入字符不能为空格
  static const String regexFirstNotNull = r'^(\S){1}';
}

class RegexFormatter extends TextInputFormatter {
  RegexFormatter({required this.regex});

  /// 需要匹配的正则表达
  final String regex;

  @override
  TextEditingValue formatEditUpdate(
    TextEditingValue oldValue,
    TextEditingValue newValue,
  ) {
    if (newValue.text.isEmpty) {
      return TextEditingValue.empty;
    }

    if (!RegExp(regex).hasMatch(newValue.text)) {
      return oldValue;
    }
    return newValue;
  }
}
TextField(
  inputFormatters: [
    RegexFormatter(regex: RegexUtil.regexFirstNotNull),
  ],
),

GitHub

https://github.com/CaiWanFeng/flutter-uikit

上一篇 下一篇

猜你喜欢

热点阅读