当文本框发生变化时,我想在数字和字母数字字符之间添加一个空格。
例如
34 YT 567 *Allowed*
22 KL 2345 *Allowed*
22KL 2345 *Not Allowed*
22KL2345 *Not Allowed*
22 KL2345 *Not Allowed*
答案 0 :(得分:2)
这将通过在必要时插入空格来修复不正确的值:
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
使用模式[^a-zA-Z0-9 ]
,然后调用上面的Regex.Replace
。
答案 1 :(得分:1)
您可以使用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.
正则表达式匹配一个或多个数字,后跟一个或多个字母,反之亦然(字母然后是数字)。