有人可以告诉我物理路径的javascript正则表达式,如
1)用户应在文本框中输入类似内容(c:// Folder1 /)。也许在d:或e:
2)但在那之后可以接受
a)(c:// Folder1 / Folder2 /)
b)(d://Folder1/Folder2/Folder3/abc.txt)
e)(c://Folder1/Folder2/Folder3/abc.txt)
答案 0 :(得分:1)
从你给出的例子来看,这样的事情应该有效:
[a-zA-Z]://(\w+/)+
即:
[a-zA-Z]
=一个字母(大写或小写)
其次是
://
=字符“://”
其次是:
(\w+/)+
=至少一个“某事/”
“某事/”定义为:
\w+
=至少一个单词字符(即任何字母数字),后跟
/
=文字字符“/”
希望这会有所帮助 - 我的语法可能有些偏差,因为我还没有完全掌握正则表达式的javascript变种。
编辑:将正则表达式放在代码标记中以便它可见!并整理解释。
答案 1 :(得分:1)
这个问题实际上比你想象的要棘手。您正在尝试验证路径,但路径可能非常难以正确验证。您是否正确处理UNC网络路径,例如?
这称为canonicalization problem,是编写安全代码的一部分。我建议您查看some guidance from Microsoft以正确规范化并验证应用程序中的路径。规范化路径的优点是您还隐式验证其格式,因为规范形式将从库调用返回,该库调用仅返回可能有效(正确格式化)的路径。这意味着您根本不需要进行任何类型的正则表达式验证。只需将字符串抛出到规范化路径的方法(可能是Path.GetFullPath()
)并处理无效路径的异常。