js正则匹配路径
时间: 2023-08-14 14:09:29 浏览: 171
javascript正则
以下是一个 JavaScript 正则表达式,可以匹配绝对或相对路径:
```
/^([a-zA-Z]:)?(\\[^\\?\/:*|"<>]*|\/[^\\?\/:*|"<>]*)*$/
```
解释:
- `^` 匹配字符串的开头
- `([a-zA-Z]:)?` 匹配 Windows 的绝对路径,例如 `C:\`,`D:\` 等
- `(\\[^\\?\/:*|"<>]*|\/[^\\?\/:*|"<>]*)*` 匹配路径中的每个部分,包括目录和文件名
- `\\[^\\?\/:*|"<>]*` 匹配 Windows 的路径分隔符 `\` 后面的部分,除了特定字符 `?`, `\/`, `:`, `*`, `|`, `"`, `<`, `>`
- `\/[^\\?\/:*|"<>]*` 匹配 Unix/Linux 的路径分隔符 `/` 后面的部分,除了特定字符 `?`, `\/`, `:`, `*`, `|`, `"`, `<`, `>`
- `$` 匹配字符串的结尾
这个正则表达式可以匹配以下路径:
- `./dir/file.txt`
- `dir/subdir/file.txt`
- `/root/dir/file.txt`
- `C:\Windows\System32\cmd.exe`
但是它也有一些限制,比如不能匹配 URL,无法处理路径中的 Unicode 字符等。如果你需要更复杂的匹配规则,可能需要编写更高级的正则表达式。
阅读全文