我有下面的代碼片斷,我正在檢查無效字符的名稱,並在用戶輸入無效字符時返回false(允許的字符在正則表達式中定義) 。使用正則表達式檢查無效字符的輸入字符串
問題是:只要用戶在行尾輸入無效字符,但是如果用戶在ItemName之間輸入任何無效字符(即將光標移回到ItemName中間的某處)編寫無效字符,即返回false時應返回false。
我在定義正則表達式時犯了什麼錯誤?還是有其他的錯誤?謝謝
bool validName = true;
Regex regex = new Regex(@"[a-zA-Z0-9_-]+$");
if (regex.IsMatch(ItemName, 0) == false) validName = false;
if (!validName)
{
return false;
}
else
{
return true;
}
請讓我知道,如果有什麼不清楚。 (@「[a-zA-Z0-9 _-] + $」)改爲(@「^ [a-zA-Z0-9 _-] * $」)並且它可以工作。我正在做什麼明顯的錯誤,或者這是正確的解決方案?
你的正則表達式看起來好像沒什麼問題.. –
將'+'改成'*'也可以處理空字符串,並且在開始時追加'^'現在注意整個字符串對於這個模式是否有效。 – NeverHopeless