我正在制作一个正则表达式,它接受任何小数点 (0-9)、+、* 或 # 但不应接受任何字母 (a-z) 的输入。
所以数字像
- #192#
- *31#+32475728966
- 0479266315
- +32495959511
应该被接受。
当字符串中有任何字母时,正则表达式无效。
- #192#abbef
- a0479266315
这是我到目前为止的正则表达式:
private const string PhoneNumberRegex = "((\\d)|(\\*)|(\\#)|(\\+))?";
private bool IsValid(inputString)
{
// Accept * # + and number
Match match = Regex.Match(inputString, PhoneNumberRegex, RegexOptions.IgnoreCase);
return match.Success;
}
但是这个正则表达式也在#192#abbef 上返回 true
我该如何解决这个问题?
最佳答案
你可以使用这个:
private const string PhoneNumberRegex = @"^[0-9*#+]+$";
其中 ^
和 $
是字符串开始和结束的 anchor 。
注意:不需要 RegexOptions.IgnoreCase
。
关于c# - 带有数字和特殊字符但没有字母的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20705728/