Regular Expression for alphanumeric and underscores

前端 未结 20 1040
北荒
北荒 2020-11-22 10:01

I would like to have a regular expression that checks if a string contains only upper and lowercase letters, numbers, and underscores.

20条回答
  •  闹比i
    闹比i (楼主)
    2020-11-22 10:46

    Try these multi-lingual extensions I have made for string.

    IsAlphaNumeric - String must contain atleast 1 alpha (letter in Unicode range, specified in charSet) and atleast 1 number (specified in numSet). Also, the string should comprise only of alpha and numbers.

    IsAlpha - String should contain atleast 1 alpha (in the language charSet specified) and comprise only of alpha.

    IsNumeric - String should contain atleast 1 number (in the language numSet specified) and comprise only of numbers.

    The charSet/numSet range for the desired language can be specified. The Unicode ranges are available on below link:

    http://www.ssec.wisc.edu/~tomw/java/unicode.html

    API :

        public static bool IsAlphaNumeric(this string stringToTest)
        {
            //English
            const string charSet = "a-zA-Z";
            const string numSet = @"0-9";
    
            //Greek
            //const string charSet = @"\u0388-\u03EF";            
            //const string numSet = @"0-9";
    
            //Bengali
            //const string charSet = @"\u0985-\u09E3";
            //const string numSet = @"\u09E6-\u09EF";
    
            //Hindi
            //const string charSet = @"\u0905-\u0963";
            //const string numSet = @"\u0966-\u096F";
    
            return Regex.Match(stringToTest, @"^(?=[" + numSet + @"]*?[" + charSet + @"]+)(?=[" + charSet + @"]*?[" + numSet + @"]+)[" + charSet + numSet +@"]+$").Success;
        }
    
        public static bool IsNumeric(this string stringToTest)
        {
            //English
            const string numSet = @"0-9";
    
            //Hindi
            //const string numSet = @"\u0966-\u096F";
    
            return Regex.Match(stringToTest, @"^[" + numSet + @"]+$").Success;
        }
    
        public static bool IsAlpha(this string stringToTest)
        {
            //English
            const string charSet = "a-zA-Z";
    
            return Regex.Match(stringToTest, @"^[" + charSet + @"]+$").Success;
        }
    

    Usage :

            //English
            string test = "AASD121asf";
    
            //Greek
            //string test = "Ϡϛβ123";
    
            //Bengali
            //string test = "শর৩৮";
    
            //Hindi
            //string test = @"क़लम३७ख़";
    
            bool isAlphaNum = test.IsAlphaNumeric();
    

提交回复
热议问题