请帮助正则表达式.我正在验证一个字符串.该值不应仅包含%,如果有%,则长度应超过3个字符,包括%.%可以是字符串中的任何位置(包含点).
我能想出来.只有%在字符串中时才会发生此验证.如果没有%,则无需验证.
@"^[a-zA-Z0-9'.]*%"; //{3,}$";
谢谢,Naveen
例子:
"%" - 失败"%12" - 失败"%123" - 通过"%1234" - 通过"12%3" - 通过"abc%" - 通过"abc" - 通过"A" - 通过"ABC" - 通过如果这是您的验证范围,您最好使用Contains("%")和Length属性string.
return !value.Contains("%") || value.Length > 3;
Run Code Online (Sandbox Code Playgroud)
它与一个正则表达式来测试本来就很难既总长度和用于内的图案.如果%它们处于固定位置(开始,结束,从开始的第2个字符等),它将更适合,但是原样,这不是一个用单个RegEx 优雅地解决的问题.
它可以使用丑陋的RegEx来完成,使用一些外观,但该解决方案不可能在不同的RegEx实现中移植(例如,它可能不适用于客户端Javascript验证).