如何检查字符串是否仅包含字母、数字、下划线和句点。颤振/飞镖

Joh*_*omy 5 regex string dart flutter

我想检查一个字符串是否只包含:

  1. 信件
  2. 数字
  3. 下划线
  4. 经期

在 Flutter 中,我尝试了以下方法来仅获取字母,但即使存在其他字符,如果它包含字母,它也会返回 true:

String mainString = "abc123";

print(mainString.contains(new RegExp(r'[a-z]')));

Run Code Online (Sandbox Code Playgroud)

正如我所说,它会返回,true因为它包含字母,但我想知道它是否只包含字母。

有没有办法做到这一点?

jam*_*lin 22

您的问题RegExp是您允许它匹配子字符串,并且您只匹配单个字符。您可以强制它要求整个字符串与^和匹配$,并且您可以使用 与一个或多个表达式匹配+

print(RegExp(r'^[a-z]+$').hasMatch(mainString));
Run Code Online (Sandbox Code Playgroud)

要匹配您提到的所有字符:

print(RegExp(r'^[A-Za-z0-9_.]+$').hasMatch(mainString));
Run Code Online (Sandbox Code Playgroud)