0

我需要正则表达式来验证字符串中的多个文件名。

例如:

a.html已验证。
如果超过 1 个文件应该是a.html;b.html
如果超过 2 个应该是a.html;b.html;c.html

错误表达:

1)  a;b.html
2)  a.html;b
3)  a;b
4)  a.html;
5)  a.html;b;
6)  a.html;b.html;

如果字符串以结尾,;则应该有另一个有效的文件名 ( c.html)。

我的代码是:

regex": /^([a-zA-Z]:\\)?[^\x00-\x1F"<>\|:\*\?/]+\.[a-zA-Z]{3,4}$/,
alertText": "* Only (;) and (.) are Allowed
4

1 回答 1

0

这是一个简短的解决方案

/^(?:[^\.;]+\.[^\.;]+)(?:;[^\.;]+\.[^\.;]+)*$/

一些解释:第一部分(?:[^\.;]+\.[^\.;]+)将匹配单个文件名。文件名可以是任何不包含.;

第二部分(?:;[^\.;]+\.[^\.;]+)*与第一部分几乎相同,除了;前面和尾部*。这代表一个文件名,就像第一部分一样,带有前导;. 它会尽可能地重复

于 2012-10-27T23:28:07.147 回答