【发布时间】:2010-11-17 16:31:41
【问题描述】:
我有一个从用户那里获取输入的 Web 应用程序,通常采用文件路径、超链接或文件共享的形式,但并非总是如此。用户可以输入“\my.fileshare.com”、“http://www.msdn.com”或“在我的文件柜中”。这些输入被导出到 Excel 文件。但是,如果输入的形式是“\look on my desk”或“http://here it is”(注意空格),则在导出并打开文件后,Excel 会引发如下描述性错误消息,我引用“错误”。
我在现有代码中添加了一个正则表达式验证器到用户输入和编辑这些位置的文本框。由于存在大量现有条目,验证器需要尽可能具体,并且只扔掉导致 Excel 导出中断的输入。例如,“\Will Work”将起作用,“Will Work”也将起作用,“\This\will also work”。我需要一个正则表达式,如果字符串以 \、http://、https://、ftp://、ftps:// 开头,则服务器或文件共享名称中没有空格,如果有不要以\、http://、https://、ftp://、ftps://开头,不管怎样都可以。
我已经可以写第一部分了 ^(\\)[^ \]+(\.)$|^(((ht|f)tp(s)?)://)[^ /]+(/.)$
但如果它不以 \、http://、https://、ftp://、ftps:// 开头,我不知道如何说忽略所有内容。
【问题讨论】: