我需要结合两个正则表达式。检查字符串的开头是http://
还是https://
以及阻止逗号的字符串。
ValidationExpression="(\b(http://|https://)\S*)?"
ValidationExpression="[^,]"
将它们加在一起似乎不起作用。
ValidationExpression="(\b(http://|https://)[^,]\S*)?"
修改
我意识到我在这里有点模糊。是的,我希望整个表达式是可选的(这个字段在我的表单中应该是可选的)
答案 0 :(得分:2)
您需要合并character classes,并且在简单的?
执行时您不需要替换:
ValidationExpression="(\bhttps?://[^,\s]*)?"
[^\s]
表示与\S
相同,因此[^,\s]
匹配任何既不是逗号也不是空白字符的字符。
答案 1 :(得分:2)
尝试这个:
模式:^https?://[^,]+$
比赛:
ok - http://aaa/bbb/ccc
ok - https://aaa/bbb/ccc
false - http://aaa/bbb/,/ccc
false - https://aaa/bbb/,/ccc
OR
模式:
https?://[^,]+
文字:
http://aaa/bbb/,/ccc https://abecadlo/123/
匹配:
http://aaa/bbb/
https://abecadlo/123/
答案 2 :(得分:0)
表达式应该更可能是:
https?://[^,\s]*
您可能不希望将整个表达式设为可选,因此请删除?围绕整个表达。
答案 3 :(得分:0)
Uri uri;
bool isValid=Uri.TryCreate(url,UriKind.Absolute,out uri);
if(isValid)//valid
else //invalid