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 相关文章推荐
JavaScript 组件之旅(三):用 Ant 构建组件
Oct 28 Javascript
ExtJS Window 最小化的一种方法
Nov 18 Javascript
JavaScript调用Activex控件的事件的实现方法
Apr 11 Javascript
来自国外的14个图片放大编辑的jQuery插件整理
Oct 20 Javascript
jQuery :first选择器使用介绍
Aug 09 Javascript
AngularJS基础 ng-model-options 指令简单示例
Aug 02 Javascript
快速解决js中window.location.href不工作的问题
Nov 02 Javascript
JavaScript中数组的各种操作的总结(必看篇)
Feb 13 Javascript
Three.js基础学习之场景对象
Sep 27 Javascript
亲自动手实现vue日历控件
Jun 26 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
Sep 12 Javascript
详解JavaScript中的链式调用
Nov 27 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
php结合飞信 免费天气预报短信
2009/05/07 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
2012/03/01 PHP
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
PHP APC缓存配置、使用详解
2014/03/06 PHP
漂亮的仿flash菜单,来自蓝色经典
2006/06/26 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
javascript的字符串按引用复制和传递,按值来比较介绍与应用
2012/12/28 Javascript
js创建对象的区别示例介绍
2014/07/24 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
JS实现的幻灯片切换显示效果
2016/09/07 Javascript
快速掌握jQuery插件开发
2017/01/19 Javascript
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
Angular中使用better-scroll插件的方法
2018/03/27 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
2018/06/07 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
js表达式与运算符简单操作示例
2020/02/15 Javascript
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
Python中字典和JSON互转操作实例
2015/01/19 Python
Python统计单词出现的次数
2018/04/04 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
2018/12/30 Python
python多线程共享变量的使用和效率方法
2019/07/16 Python
Python map及filter函数使用方法解析
2020/08/06 Python
幼儿园安全责任书范本
2014/07/24 职场文书
领导干部贪图享乐整改措施
2014/09/21 职场文书
学雷锋倡议书
2015/01/19 职场文书
孔子观后感
2015/06/08 职场文书
暑期工社会实践报告
2015/07/13 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS
Python序列化模块JSON与Pickle
2022/06/05 Python