【发布时间】:2012-06-22 21:59:01
【问题描述】:
这是我目前的情况;我是一个近乎完全的正则表达式文盲,我的任务是扩展我们网站的一部分,该网站向用户请求域名以获得客户帐户。现在它是一行,一个域名,下面的正则表达式效果很好。
(?i)^(?!.{257,})(?!.*-\\.)(?!.*?-\\.)(?:[a-zA-Z0-9-]{1,64}\\.)+(?:[a-zA-Z]{2,6})\\b
我需要做的是允许用户在框中输入多个域名。每行一个。基本上我需要做的就是包装这个正则表达式,以便逐行应用验证,而不是在整个集合上。
我知道这件事使用消极的前瞻性,尽管我不知道这些是什么。我发现的每个教程似乎都避开了我需要的想法和概念。我本周末可以学习的任何想法、链接或 cmets 将不胜感激。
顺便说一句,我在 .Net MVC 3.0 中实现这个。
谢谢!
【问题讨论】:
-
似乎最简单的做法是将域列表从每一行拆分为一个列表,然后在每个域上单独运行现有的正则表达式。这样,如果其中一个无效,您可以告诉他们第 XX 行的域无效,而如果您试图在一个巨大的列表中进行该操作,您将无法轻易判断它失败的位置。
-
这就是我最终所做的,效果很好。此外,由于我改变了看待它的方式,我的 UI 设计看起来和工作得非常完美。
标签: c# regex asp.net-mvc asp.net-mvc-3 validation