2

当文本框更改时,我想在数字和字母数字字符之间添加一个空格。

例如

34 YT 567 *Allowed*
22 KL 2345 *Allowed*
22KL 2345 *Not Allowed*
22KL2345 *Not Allowed*
22 KL2345 *Not Allowed*
4

2 回答 2

3

这将通过在必要时插入空格来修复不正确的值:

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上面的调用。

于 2012-11-27T09:35:36.947 回答
2

您可以使用 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.

正则表达式匹配一个或多个数字,直接后跟一个或多个字母或相反(字母然后数字)。

于 2012-11-27T09:30:22.403 回答