问题描述: 我们都知道 网路文件一般:http://或者是https://或者是ftp://的 本地文件:file:///C:/Users/n/AppData/Local/xxx 或者是:c:/aa/bb/xx 现在已知道: 网络的js正则:/^(https?|ftp|):/i.test(src) 想把本地的也就是file:///或者是c:/这类的也给包含进来。 怎么写?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要创建一个正则表达式,能够同时匹配网络文件路径(http://, https://, ftp://)和本地文件路径(file:/// 或 c:/ 开头),你可以调整现有的正则表达式如下:
/^(https?|ftp|file):\/\/|c:\/i.test(src)
这里做了以下修改:
(https?|ftp)
部分,用于匹配"http://"、"https://"和"ftp://"。file:\/\/\/
来匹配以"file:///"开头的本地文件路径。|c:\/
来匹配以"c:/"开头的本地文件路径。注意这里的斜杠方向是"/",因为在正则表达式中,"/"需要被转义,而Windows路径中的反斜杠"\"在字符串中应写为"\", 但在这里我们直接使用Unix风格的路径分隔符,因为正则表达式不区分这个差异,且这样更通用。综上,这个正则表达式将能识别你所描述的所有类型文件路径。