当文本框更改时,我想在数字和字母数字字符之间添加一个空格。
例如
34 YT 567 *Allowed*
22 KL 2345 *Allowed*
22KL 2345 *Not Allowed*
22KL2345 *Not Allowed*
22 KL2345 *Not Allowed*
当文本框更改时,我想在数字和字母数字字符之间添加一个空格。
例如
34 YT 567 *Allowed*
22 KL 2345 *Allowed*
22KL 2345 *Not Allowed*
22KL2345 *Not Allowed*
22 KL2345 *Not Allowed*
这将通过在必要时插入空格来修复不正确的值:
var correctedValue = Regex.Replace(
incorrectValue,
"(?<=[0-9])(?=[A-Za-z])|(?<=[A-Za-z])(?=[0-9])",
" ");
Regex.IsMatch
如果您想警告用户而不是自动修复它,您可以使用相同的模式来检测不正确的值。
编辑:
Regex.IsMatch(MyTextBox.Text,
"(?<=[0-9])(?=[A-Za-z])|(?<=[A-Za-z])(?=[0-9])|[^a-zA-Z0-9 ]")
true
如果用户在字母旁边输入数字,或输入任何非字母数字(和非空格)字符,将返回。
如果要删除非字母数字字符并插入空格,则需要分两步完成;首先Regex.Replace
是 pattern [^a-zA-Z0-9 ]
,然后是Regex.Replace
上面的调用。
您可以使用 RegEx 轻松找到错误的输入。
Regex rgx = new RegEx("([0-9]+[a-z]|[A-Z]+)||([a-z]|[A-Z]+[0-9]+)");
if (rgx.IsMatch(MyTextBox.Text)
{
//bad input
}
else
//input was good.
正则表达式匹配一个或多个数字,直接后跟一个或多个字母或相反(字母然后数字)。