1

我需要结合两个正则表达式。一种检查字符串的开头是否为http://orhttps://和一种防止逗号。

ValidationExpression="(\b(http://|https://)\S*)?"

ValidationExpression="[^,]"

只是将它们加在一起似乎不起作用。

ValidationExpression="(\b(http://|https://)[^,]\S*)?"

编辑
我意识到我在这里有点含糊。是的,我希望整个表达式是可选的(这个字段在我的表单中应该是可选的)

4

4 回答 4

2

您需要组合字符类,并且在简单的情况下不需要交替?

ValidationExpression="(\bhttps?://[^,\s]*)?"

[^\s]与 的含义相同\S,因此[^,\s]匹配任何既不是逗号也不是空格字符的字符。

于 2013-10-04T11:57:01.333 回答
2

试试这个:
模式:^https?://[^,]+$
匹配:
ok - http://aaa/bbb/ccc
ok - https://aaa/bbb/ccc
false - http://aaa/bbb/,/ccc
false - https://aaa/bbb/,/ccc

或者

模式:
https?://[^,]+
文本:
http://aaa/bbb/,/ccc https://abecadlo/123/
匹配:
http://aaa/bbb/ https://abecadlo/123/

于 2013-10-04T12:08:29.297 回答
0

表达式应该更可能是:

https?://[^,\s]*

您可能不想将整个表达式设为可选,因此请删除 ? 围绕整个表达式。

于 2013-10-04T12:00:31.283 回答
0
Uri uri;
bool isValid=Uri.TryCreate(url,UriKind.Absolute,out uri);
if(isValid)//valid
else //invalid
于 2013-10-04T12:19:48.953 回答