我正在尝试使用Dart制作angular2验证器:
class CustomValidators {
static Map<String, bool> wordValidator(Control ctrl)
{
if( matches(ctrl.value, r"^[A-Za-z]{1,}[\'\ \,\.\-]*[a-z]*$"))
{
return {'wordValidator': true};
}
}
}
其中匹配具有以下定义:
/// check if string matches the pattern.
bool matches(String str, pattern) {
RegExp re = new RegExp(pattern);
return re.hasMatch(str);
}
当我尝试运行验证时,我在控制台中获得以下内容
(anonymous function)
ERROR CONTEXT:
(anonymous function)
DartObject
(anonymous function)
<
Uncaught Unhandled exception:
EXCEPTION: Invalid argument(s) in [AST]
ORIGINAL EXCEPTION: Invalid argument(s)
ORIGINAL STACKTRACE:
#0 _JSSyntaxRegExp.hasMatch (dart:core-patch/regexp_patch.dart:174)
#1 matches (package:validator/src/validator.dart:53:13)
#2 CustomValidators.wordValidator (package:epimss_ng2_shared/validators.dart:83:9)
...
(package:epimss_ng2_shared/validators.dart:83:9)
指向上面的匹配方法。
由于
答案 0 :(得分:0)
没有完整的回购案就很难说。
我认为ctrl.value
会返回null
或其他非String
值。