如何确定用户是否输入了连字符

本文关键字:连字符 输入 是否 何确定 用户 | 更新日期: 2023-09-27 18:26:37

我的用户不允许为输入字段提供一堆单词。我是这样捕捉的:

 Regex invalidWordPatten = new Regex(@"(^|'s)'b(test|unknown|as above|soos bo|na|n/a|delete|u|none|geen|0|ontbreek|nil|same as|no address available|same as)'b", RegexOptions.IgnoreCase);

用户也不允许只输入连字符。我不知道它在这个正则表达式中的位置。

如何确定用户是否输入了连字符

刚刚测试:您只需要将-|添加到模式的开头,就可以匹配任何连字符,而且据我所知,如果用户键入-,她/他将收到警告:

-|(^|'s)'b(test|unknown|as above|soos bo|na|n/a|delete|u|none|geen|0|ontbreek|nil|same as|no address available|same as)'b
^^

那么,我猜你有类似的东西

if (invalidWordPatten.IsMatch(input))
{
    MessageBox.Show("Incorrect input!", "Error"); // or any other handling code part
}

请参阅regex演示

您可以创建另一个RegEx来检查连字符字符,这将有助于您的代码干净易读:

Regex hyphenChar = new Regex(@"'b[^-]+'b", RegexOptions.IgnoreCase);
Regex invalidWordPatten = new Regex(@"(^|'s)'b(test|unknown|as above|soos bo|na|n/a|delete|u|none|geen|0|ontbreek|nil|same as|no address available|same as)'b", RegexOptions.IgnoreCase);
var isNotMatch = hyphenChar.Match(...) && invalidWordPatten.Match(...)