根据文档 -IsValid 应该检查路径的语法是否正确。我为测试路径放置的任何内容它总是返回 true
指示此 cmdlet 测试路径的语法,无论路径的元素是否存在。如果路径语法有效,则此 cmdlet 返回 $True;如果无效,则返回 $False
$val = Test-Path "sadfasdasdfasdf" -IsValid
Run Code Online (Sandbox Code Playgroud) 我试图找到Java脚本的Windows文件路径验证,但似乎没有一个可以满足我想要的要求,因此我决定自己构建它。
要求如下:
这是我想出的正则表达式: / ^([az]:((\ | / | \\\ ///))|(\\ | //))[^ <>:“ |?*] + /一世
但是有一些问题:
var reg = new RegExp(/^([a-z]:((\\|\/|\\\\|\/\/))|(\\\\|\/\/))[^<>:"|?*]+/i);
var startList = [
'C://test',
'C://te?st.html',
'C:/test',
'C://test.html',
'C://test/hello.html',
'C:/test/hello.html',
'//test',
'/test',
'//test.html',
'//10.1.1.107',
'//10.1.1.107/test.html',
'//10.1.1.107/test/hello.html',
'//10.1.1.107/test/hello',
'//test/hello.txt',
'/test/html',
'/tes?t/html',
'/test.html',
'test.html',
'//',
'/',
'\\\\',
'\\',
'/t!esrtr',
'C:/hel**o'
];
startList.forEach(item => {
document.write(reg.test(item) + ' >>> ' + item);
document.write("<br>");
});Run Code Online (Sandbox Code Playgroud)