簡體   English   中英

如何驗證字符串僅包含某些字符

[英]How to validate that a string contains only certain characters

我正在為學校做作業:

我已經將一個字符串傳遞給了mutator,我需要驗證它僅包含空格,連字符或大小寫字母。

輸出始終為“”。

你能看到我做錯了嗎? 有更聰明的方法嗎? 我從我的老師那里得到了這種方式,但是它不起作用。 這是我的代碼:

public void setFirstName(string newFirstName

{

    bool valid;

    valid = System.Text.RegularExpressions.Regex.IsMatch(newFirstName, "^[- a-zA-Z]?$");

    if (valid)

    {

        firstName = newFirstName;

    }

        firstName = " ";

}

您需要其他阻止。

public void setFirstName(string newFirstName)
{
    bool valid;
    valid = System.Text.RegularExpressions.Regex.IsMatch(newFirstName, "^[- a-zA-Z]*$");
    if (valid)
    {
        firstName = newFirstName;
    }
    else
    {
        firstName = " ";
    }
}

更新資料

您的正則表達式似乎也錯了,它需要*零個或多個出現而不是?。 正確的正則表達式 => ^[- a-zA-Z]*$

點擊這里查看工作提琴=> 鏈接

作為RegEx的替代方法(如果您仍在學習C#,我不建議這樣做),可以將基本的字符串驗證與LINQ和內置的.Net char方法一起使用

bool isValid = newFirstName.All(x => char.IsLetter(x) || x == '-' || x == ' ');

在這種特殊情況下, All將檢查數組中的每個元素(字符串是char數組)是否與提供的謂詞與每個字符相匹配:

  • 必須是字母(大寫或小寫)或
  • 必須為破折號“-”或
  • 必須是一個空格''

如果這些條件中的任何一個失敗,那么結果將為假。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM