簡體   English   中英

正則表達式字符串僅限制

[英]Regular expression string only with limit

我正在學習在字符串上創建正則表達式查詢,限制為30個字符(主要用於名字和姓氏)

我正在使用asp.net C#,但我似乎沒有用我正在編寫的代碼找到它

[WebMethod]   
public bool stringOnlyAndLimit(String strToCheck) 
{
    Regex stringonly = new Regex("[^a-zA-Z]{1,30}"); 
    return !stringonly.IsMatch(strToCheck);
}

提前致謝

如果您想學習RegEx,請忽略此答案,否則

非RegEx選項。 你不需要像這樣的東西,你可以這樣做:

public bool stringOnlyAndLimit(String strToCheck)
{
 return strToCheck.Length < 31 && strToCheck.All(r => char.IsLetter(r));        
 //return strToCheck.Length < 31 && !strToCheck.Any(r => char.IsDigit(r));
}

使用RegEX

public static bool stringOnlyAndLimit(String strToCheck)
{
    Regex stringonly = new Regex("^[a-zA-Z ]{1,30}$");
    return stringonly.IsMatch(strToCheck);
}

你可以嘗試這樣的事情: -

^[a-zA-Z ]{1,30}$

你的正則表達式[^a-zA-Z]{1,30}當前說給我任何不是字母az和AZ的東西,因為括號內的胡蘿卜^ 刪除它,它將適用於沒有空格的單個字符串。

如果你想用一個包含空格字符的RegEx檢查名字和姓氏,並且不到30個字符,它應該是這樣的:

^[a-zA-Z\\s]{1,30}$

不是特別針對C#,^是括號內的NOT符號。 所以[^ abc]將匹配 a,b或c 之外的任何字符。

所以你的正則表達式應該是[a-zA-Z] {1,30}

試試這個正則表達式

^[A-Za-z]{0,30}$

暫無
暫無

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

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