flutter之正则

 

多种银行卡

多种银行卡正则

TextInputFormatter篇

  1. 忽略特殊字符
import 'package:flutter/services.dart';
const _regExp=r"^[u4E00-u9FA5A-Za-z0-9_]+$";
//忽略特殊字符
class IgnoreOtherFormatter extends TextInputFormatter{
  
  1. 只能输入数字和小写字母
import 'package:flutter/services.dart';
const _regExp=r"^[Za-z0-9_]+$";
class onlyInputNumberAndLowWorkFormatter extends TextInputFormatter{
  
  1. 只能输入数字和字母
import 'package:flutter/services.dart';
const _regExp=r"^[ZA-ZZa-z0-9_]+$";
class onlyInputNumberAndWorkFormatter extends TextInputFormatter{
  
  1. 只能输入数字
WhitelistingTextInputFormatter.digitsOnly
  1. 长度限制(限制6位)
LengthLimitingTextInputFormatter(6)
  1. 限制单行
BlacklistingTextInputFormatter.singleLineFormatter

正则校验篇

  ///手机号验证
  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);
  }

  ///邮箱验证
  static bool isEmail(String str) {
    return RegExp(
        r"^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$")
        .hasMatch(str);
  }
///验证URL
  static bool isUrl(String value) {
    return RegExp(
        r"^((https|http|ftp|rtsp|mms)?://)[^s]+")
      .hasMatch(value);
}

///验证身份证
  static bool isIdCard(String value) {
    return RegExp(
        r"d{17}[d|x]|d{15}")
      .hasMatch(value);
}

///验证中文
  static bool isChinese(String value) {
    return RegExp(
       r"[u4e00-u9fa5]")
      .hasMatch(value);
}


final String regexEmail = "(^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$)|(^(\w+((-\w+)|(\.\w+))*)\+\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$)";//
///银行卡长度校验
final String regexBankCardLength = "/^[0-9]\d{9,29}$/";
 
isNotEmptyStr(String str){
return (str != null && str.isNotEmpty);
}

isNotEmptyToken(){
return isNotEmptyStr(SpUtil.getString('token')) && isNotEmptyStr(UserManager.userInfoModel?.id?.toString());
}

isNotEmptyUserId(){
return isNotEmptyStr(UserManager.userInfoModel?.id?.toString());
}

String notNullStr(dynamic objStr){
return isNotEmptyStr(objStr) ? objStr : '';
}

bool isNotNullLength(dynamic dataList){
return (dataList != null && dataList.length > 0);
}

/// 检查是否是邮箱格式
bool isEmail(String input) {
if (input == null || input.isEmpty) return false;
return new RegExp(regexEmail).hasMatch(input);
}

//卡片
bool isBankCardLength(String inputStr) {
if (inputStr == null || inputStr.isEmpty) return false;
return new RegExp(regexBankCardLength).hasMatch(inputStr);
}

目前所遇到的正则,后续会持续更新,欢迎评论



作者:rhyme_lph
链接:https://www.jianshu.com/p/33ccf516ed6a
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 
 
 
原文地址:https://www.cnblogs.com/sundaysme/p/12703042.html