我正在尝试在正则表达式中传递变量 语言DART
`betweenLenth(val, field, [min = 4, max = 20]) {
final RegExp nameExp = new RegExp(r'^\w{" + min + "," + max + "}$');
if (!nameExp.hasMatch(val))
return field + " must be between $min - $max characters ";
}`
感谢
答案 0 :(得分:1)
您不能对原始字符串使用字符串插值。
使用插值
final RegExp nameExp = new RegExp('^\\w{"$min","$max"}\$');
final RegExp nameExp = new RegExp('^\\w{$min,$max}\$');
连接
final RegExp nameExp = new RegExp(r'^\w{"' + min + '","' + max + r'"}$');
final RegExp nameExp = new RegExp(r'^\w{' + min + ',' + max + r'}$');
答案 1 :(得分:0)
您可以使用
betweenLenth(val, field, [min = 4, max = 20]) {
final RegExp nameExp = new RegExp("^\\w{$min,$max}\$");
if (!nameExp.hasMatch(val))
return field + " must be between $min - $max characters ";
return "Correct!";
}
生成的正则表达式为^\w{4,20}$
。
注意:
$
字符"\\d"
以匹配数字等)。