flutter-正则

作者: ChaosHeart | 来源:发表于2020-12-17 18:38 被阅读0次

一:TextInputFormatter篇

(1)忽略特殊字符

import 'package:flutter/services.dart';
const _regExp=r"^[\u4E00-\u9FA5A-Za-z0-9_]+$";
//忽略特殊字符
class IgnoreOtherFormatter extends TextInputFormatter{
  @override
  TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
    if(newValue.text.length>0){
      if(RegExp(_regExp).firstMatch(newValue.text)!=null){
        return newValue;
      }
      return oldValue;
    }
   return newValue;
  }
}

(2)只能输入数字和小写字母

import 'package:flutter/services.dart';
const _regExp=r"^[Za-z0-9_]+$";
class onlyInputNumberAndLowWorkFormatter extends TextInputFormatter{
  @override
  TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
    if(newValue.text.length>0){
      if(RegExp(_regExp).firstMatch(newValue.text)!=null){
        return newValue;
      }
      return oldValue;
    }
   return newValue;
  }
}

(3)只能输入数字和字母

import 'package:flutter/services.dart';
const _regExp=r"^[ZA-ZZa-z0-9_]+$";
class onlyInputNumberAndWorkFormatter extends TextInputFormatter{
  @override
  TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
    if(newValue.text.length>0){
      if(RegExp(_regExp).firstMatch(newValue.text)!=null){
        return newValue;
      }
      return oldValue;
    }
   return newValue;
  }
}

(4)只能输入数字

WhitelistingTextInputFormatter.digitsOnly

(4)长度限制(限制6位)

LengthLimitingTextInputFormatter(6)

(6)限制单行

BlacklistingTextInputFormatter.singleLineFormatter

二:正则

(1)手机号验证

  static bool isChinaPhoneLegal(String str) {
    return RegExp(
            r"^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$")
        .hasMatch(str);
  }

(2)邮箱验证

  static bool isEmail(String str) {
    return RegExp(
        r"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$")
        .hasMatch(str);
  }

(3)验证URL

  static bool isUrl(String value) {
    return RegExp(
        r"^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+")
      .hasMatch(value);
}

(4)验证身份证

  static bool isIdCard(String value) {
    return RegExp(
        r"\d{17}[\d|x]|\d{15}")
      .hasMatch(value);
}

(5)验证中文

  static bool isChinese(String value) {
    return RegExp(
       r"[\u4e00-\u9fa5]")
      .hasMatch(value);
}

相关文章

网友评论

    本文标题:flutter-正则

    本文链接:https://www.haomeiwen.com/subject/qgwngktx.html