flutter_utils_plus 0.0.8 copy "flutter_utils_plus: ^0.0.8" to clipboard
flutter_utils_plus: ^0.0.8 copied to clipboard

Flutter开发工具包

使用说明 #

String #

snakeToCamel: 蛇形转驼峰,String (String str)
cameToSnake: 驼峰转蛇形,String (String str)
uppercaseFirst: 首字母转大写,String (String str)
lowercaseFirst: 首字母转小写,String (String str)
insertLength: 固定长度插入字符,String (String str, [len = 4, separator = ' '])
formatAmount: 金额千分位逗号分隔,String (Object value)
maskPhone: 隐藏部分电话号码,String (String str)
getSuffix: 获取字符串后缀,String (String str, [separator = '.'])

Number #

toNumber: 转为数字类型,num? (Object? value)
toInt: 转为整数类型(四舍五入),int? (Object? value)
toFixed: 数字精度转换(四舍五入),num (num value, [digit = 2])
calcAdd: 精准计算(加法),num (num num1, num num2)
calcSubtract: 精准计算(减法),num (num num1, num num2)
calcMultiply: 精准计算(乘法),num (num num1, num num2)
calcDivide: 精准计算(除法),num (num num1, num num2)
meterToFt: 米(m)转英尺(ft),num (num value, [int? digit])
ftToMeter: 英尺(ft)转米(m),num (num value, [int? digit])
meter2ToFt2: 平方米(m²)转平方英尺(ft²),num (num value, [int? digit])
ft2ToMeter2: 平方英尺(ft²)转平方米(m²),num (num value, [int? digit])
celsiusToFahrenheit: 摄氏度(°C)转华氏度(°F),num (num value, [int? digit])
fahrenheitToCelsius: 华氏度(°F)转摄氏度(°C),num (num value, [int? digit])

Validate #

isEmptyObject: 验证是否为空(null/String/Map/List),bool (Object? value)
isNotEmptyObject: 验证是否不为空(null/String/Map/List),bool (Object? value)
isEmptyMap: 验证是否为空(null/Map),bool (Map? map)
isEmptyList: 验证是否为空(null/List),bool (Iterable? list)
isEmptyString: 验证是否为空(null/String),bool (String? str)
isChinese: 验证是否包含中文,bool (String value)
isMobile: 验证电话号码,bool (String value)
isEmail: 验证邮箱,bool (String value)
isBank: 验证银行卡号,bool (String value)
isVersion: 验证版本号,bool (String value)
isIDCard: 验证身份证号码,bool (String value)
isURL: 验证 URL,bool (String value)
isIP: 验证 IP 地址,bool (String value)
isDate: 验证日期格式(YYYY-MM-DD),bool (String value)
isDateTime: 验证日时间格式(YYYY-MM-DD HH:mm:ss),bool (String value)
isEqual: 验证是否相等(null/String/Map/List),bool (Object? a, Object? b)
isAccount: 验证账号(只包含数字/字母/下划线/减号),bool (String value, [min = 5, max = 16])
isPwd: 验证密码(包含字母、数字、特殊符,任意 2 种),bool (String value, [min = 5, max = 16])

Function #

debounce: 防抖函数(停止触发后执行一次,如搜索防抖),Function (Function func, [int delay = 500])
throttle: 节流函数(固定时间内只触发一次,如点击防抖),Function (Function func, [delay = 1500, leading = true])

Array #

treeToArray: 树转列表,List (List tree)
arrayToTree: 列表转树,List (List list, String idKey, { String parentKey = 'parentId' })

Moment #

  • 解析
Moment([Object? dateTime]) // 支持格式 DateTime/String/int/Moment
Moment.utc([Object? dateTime]) // 支持格式 DateTime/String/int/Moment
Moment.duration(Duration duration, String format) // 时长格式化,支持 天/时/分/秒
  • 操作
Moment().unix() // 获取时间戳
Moment().toUtc() // 转换为UTC时间
Moment().toLocal() // 转换为本地时间
Moment().toDate() // 获取 DateTime 对象
Moment().add(Object? value, [String? unit]) // 加法,支持格式 Duration/(int, unit)
Moment().subtract(Object? value, [String? unit]) // 减法,支持格式 Duration/(int, unit)
Moment().difference(Object? dateTime) // 获取时差,支持格式 DateTime/String/int/Moment
Moment().isBefore(Object? dateTime) // 是否之前,支持格式 DateTime/String/int/Moment
Moment().isAfter(Object? dateTime) // 是否之后,支持格式 DateTime/String/int/Moment
Moment().isBetween(Object? startTime, Object? endTime) // 是否之间,支持格式 DateTime/String/int/Moment
Moment().isSame(Object? dateTime, String unit) // 是否相同,支持格式 DateTime/String/int/Moment
  • 显示
Moment().format([String? format]) // 显示格式 年(YYYY/YY)/月(MM/M)/日(DD/D)/时(HH/H/hh/h)/分(mm/m)/秒(ss/s)/上下午(A/a)
  • 时区
Moment([Object? dateTime]).tz(TimezoneId) // 全球时区ID请参考国际标准组织(IANA)文档

备注:

  • unit可简写:日days->d、时hours->h、分minutes->m、秒seconds->s 、毫秒milliseconds->ms
  • 其中addsubtract方法的unit为复数, isSame的为单数且支持:年year->y、月month->M
  • 如需使用时区,还需引入timezone包,并且在main函数中执行初始化时区数据库函数,如下:
import 'package:timezone/data/latest.dart' as tz;
void main() {
  tz.initializeTimeZones();
}

示例:

Moment() // 默认为此刻 等同于 Moment(DateTime.now())
Moment(DateTime.parse('1969-07-20 20:18:04')) // DateTime 格式
Moment('2025-12-01 12:00:00') // 字符串格式
Moment.utc(1318781876406) // 时间戳(毫秒)
Moment.utc('2025-12-01 12:00:00')
Moment().add(1, 'd') // 明天
Moment().add(12, 'hours') // 12小时之后
Moment().add(Duration(days: 7)) // 7天之后
Moment().subtract(1, 'd') // 昨天
Moment().subtract(12, 'hours') // 12小时之前
Moment().subtract(Duration(minutes: 10)) // 10分钟之前
Moment().isBefore('2025-12-01 12:00:00') // 今天是否在该日期之前
Moment().isAfter(DateTime.parse('1969-07-20 20:18:04')) // 今天是否在该日期之后
Moment().isBetween('2025-12-01 12:00:00', '2026-12-01 12:00:00') // 今天是否在该日期之间
Moment().isSame('2025-12-01 12:00:00', 'day') // 该日期是否和今天是用一天
Moment().format() // 2025-01-01 20:12:12.000+0800
Moment().format('YYYY-MM-DD') // 2025-01-01
Moment().format('YYYY-MM-DD HH:mm:ss') // 2025-01-01 20:12:12
Moment.utc('2024-09-01 00:00:00').tz('America/New_York').format('YYYY-MM-DD HH:mm:ss')
Moment('2025-10-01 00:00:00').tz('Asia/Shanghai', true).toUtc().format()
0
likes
120
points
155
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Flutter开发工具包

Homepage

License

MulanPSL-2.0 (license)

Dependencies

flutter, timezone

More

Packages that depend on flutter_utils_plus