js is_valid_filename验证文件名的函数


Posted in Javascript onJuly 19, 2017

函数代码

function is_valid_filename($name) 
{
  $parts = preg_split("/(\/|".preg_quote("\\").")/", $name);
  if (preg_match("/[a-z]:/i", $parts[0])) {
    unset($parts[0]);
  }
  foreach ($parts as $part) 
  {
    print "part = '$part'<br>";
    if (preg_match("/[".preg_quote("^|?*<\":>", "/")."\a\b\c\e\x\v\s]/", $part) || preg_match("/^(PRN|CON|AUX|CLOCK$|NUL|COMd|LPTd)$/im", 
    str_replace(".", "\n", $part))) {
      return false;
    }
  }
  return true;
}
$bad = array_merge(array_map('chr', range(0, 31)), array("<", ">", ":", '"', "/", "\\", "|", "?", "*"));
$result = str_replace($bad, "", $filename);

windows 系统文件命名规则限制

https://msdn.microsoft.com/en-us/library/aa365247

Javascript 相关文章推荐
IE下window.onresize 多次调用与死循环bug处理方法介绍
Nov 12 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
Apr 24 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
Sep 05 Javascript
JavaScript入门系列之知识点总结
Mar 24 Javascript
javascript 判断用户有没有操作页面
Oct 17 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
Nov 19 Javascript
详解angular应用容器化部署
Aug 14 Javascript
爬虫利器Puppeteer实战
Jan 09 Javascript
javascript中floor使用方法总结
Feb 02 Javascript
Echarts动态加载多条折线图的实现代码
May 24 Javascript
echarts统计x轴区间的数值实例代码详解
Jul 07 Javascript
Vue移动端项目实现使用手机预览调试操作
Jul 18 Javascript
vue Render中slots的使用的实例代码
Jul 19 #Javascript
详解vue前后台数据交互vue-resource文档
Jul 19 #Javascript
解决vue router使用 history 模式刷新后404问题
Jul 19 #Javascript
深入理解vue Render函数
Jul 19 #Javascript
Vue AST源码解析第一篇
Jul 19 #Javascript
Vue之Watcher源码解析(1)
Jul 19 #Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
Jul 19 #Javascript
You might like
PHP5中新增stdClass 内部保留类
2011/06/13 PHP
用php实现百度网盘图片直链的代码分享
2012/11/01 PHP
开启PHP的伪静态模式
2015/12/31 PHP
JavaScript 对Cookie 操作的封装小结
2009/12/31 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
js实现完美兼容各大浏览器的人民币大小写相互转换
2015/10/29 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
详解Node.js项目APM监控之New Relic
2017/05/12 Javascript
vue-scroller记录滚动位置的示例代码
2018/01/17 Javascript
详解VueJS应用中管理用户权限
2018/02/02 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
2020/09/10 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
[01:01]2020完美高校联赛(秋)西安落幕
2021/03/11 DOTA
Django的数据模型访问多对多键值的方法
2015/07/21 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
Python3 实现爬取网站下所有URL方式
2020/01/16 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
html5 video标签屏蔽右键视频另存为的js代码
2013/11/12 HTML / CSS
百思买加拿大:Best Buy Canada
2018/03/20 全球购物
纬创Java面试题笔试题
2014/10/02 面试题
英语专业毕业生自荐信
2013/10/28 职场文书
感恩教育活动总结
2014/05/05 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
本科毕业论文致谢怎么写
2015/05/14 职场文书
无保留意见审计报告
2015/06/05 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers
Python 数据可视化之Matplotlib详解
2021/11/02 Python
Windows11性能真的上涨35%? 桌面酷睿i9实测结果公开
2021/11/21 数码科技
vue3.0 数字翻牌组件的使用方法详解
2022/04/20 Vue.js