正则表达式模式在flutter的形式验证中不起作用



我正在尝试进行验证,我想检查用户的输入是否包含数字和字母。所以我创建了这个代码,但不知何故它不起作用。它没有达到第一次打印,但看起来一切都很好。

我的代码:

final GlobalKey<FormState> _key = GlobalKey<FormState>();

@override
Widget build(BuildContext context) {
return Form(
key: _key,
child: TextFormField(
decoration: InputDecoration(
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(5.0)),
borderSide: BorderSide(
color: Colors.blue,
width: 2,
)),
),
validator: (value) {
if (value == null || value.isEmpty) {
print(value);
print('iam here');
return 'Plate number is required';
}
String pattern = r'[!@#<>?":_`~;[]\|=+)(*&^%0-9-]';
if (!RegExp(pattern,  caseSensitive: false, unicode: true, dotAll: true).hasMatch(value)) return 'invalid form';
return null;
}),

我喜欢用这种方式用regex进行验证

TextFormField(inputFormatters: <TextInputFormatter>[FilteringTextInputFormatter.allow(RegExp("r'^[a-zA-Z0-9]+$'"))]

最新更新