我需要正则表达式来验证字符串中的多个文件名。
例如:
a.html
有效。
如果超过1个文件,则应为a.html;b.html
,
如果超过两个则应为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
答案 0 :(得分:0)
这是一个简短的解决方案
/^(?:[^\.;]+\.[^\.;]+)(?:;[^\.;]+\.[^\.;]+)*$/
一些解释:
第一部分(?:[^\.;]+\.[^\.;]+)
将匹配单个文件名。文件名可以是不包含.
和;
除了前面的(?:;[^\.;]+\.[^\.;]+)*
和尾随;
之外,第一部分*
与第一部分相同。这表示文件名,如第一部分,带有前导;
。它将尽可能重复