テキスト ボックスが変更されたら、数字と英数字の間に空白を追加します。
例えば
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
ユーザーが文字の隣に数字を入力するか、英数字以外 (およびスペース以外) の文字を入力すると、が返されます。
英数字以外の文字を削除してスペースを挿入する場合は、2 つの手順で行う必要があります。最初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.
正規表現は、1つ以上の数値に一致し、その後に1つ以上の文字が直接続くか、またはその逆です(文字と数字の順)。