我正在尝试根据各种正则表达式验证字符串;但是,如果将空白字符添加到字符串的结尾,它们将不再被标记。
if (Regex.IsMatch(literal.Value.ToString().ToLower(), @"^\+?[0-9\-\(\)\.\/]{8,20}$")
{
//Logic
}
在下面的一段代码中; X 值被标记但 Z 值没有。
string x = "0337350670"; // Gets flagged
string z = "0337350670 "; // Does not get flagged
我应该更改我的正则表达式还是有办法针对字符串的一部分进行验证?
最佳答案
您可以修剪
您的字符串以删除两侧的尾随空格。
此外,许多特殊的正则表达式字符在字符类中不再特殊(-
仍然是,但如果你这样写它会被转义:[...-]
)。
Regex.IsMatch(literal.Value.ToString().ToLower().Trim(),
@"^\+?[0-9()./-]{8,20}$"
删除 ^$
也可以,但请注意,这将允许连续超过 20 位数字的字符串:您不再检查最大长度(任何包含 [0-9()./-]{8}
会匹配)。
关于c# - 检查字符串的一部分是否匹配正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23382688/