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 相关文章推荐
提高 DHTML 页面性能
Dec 25 Javascript
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
Dec 27 Javascript
JavaScript与DropDownList 区别分析
Jan 01 Javascript
详解JavaScript编程中的数组结构
Oct 24 Javascript
Jquery on绑定的事件 触发多次实例代码
Dec 08 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
Jan 23 Javascript
JavaScript中 this 指向问题深度解析
Feb 21 Javascript
Node.JS中事件轮询(Event Loop)的解析
Feb 25 Javascript
微信小程序模板(template)使用详解
Jan 31 Javascript
vue-star评星组件开发实例
Mar 01 Javascript
微信小程序使用wxParse解析html的实现示例
Aug 30 Javascript
js for终止循环 跳出多层循环
Oct 04 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
2015/10/09 PHP
详解PHP归并排序的实现
2016/10/18 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
PHP-FPM的配置与优化讲解
2019/03/15 PHP
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
2011/05/28 Javascript
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
js实现网页收藏功能
2015/12/17 Javascript
快速使用Bootstrap搭建传送带
2016/05/06 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
[01:23:24]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第三场 2月7日
2021/03/11 DOTA
Python修改Excel数据的实例代码
2013/11/01 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
numpy数组拼接简单示例
2017/12/15 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
Django框架使用mysql视图操作示例
2019/05/15 Python
tensorflow实现在函数中用tf.Print输出中间值
2020/01/21 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
美国第一个网上卖鞋零售商:OnlineShoes.com
2017/09/24 全球购物
锐步美国官方网站:Reebok美国
2018/01/10 全球购物
艺术专业大学生自我评价
2013/09/22 职场文书
销售实习自我鉴定
2013/12/07 职场文书
市场营销管理制度
2014/01/29 职场文书
公务员政审个人鉴定
2014/02/25 职场文书
母婴店促销方案
2014/03/05 职场文书
技术合作协议书范本
2014/04/18 职场文书
2014年国庆标语
2014/06/30 职场文书
社保委托书怎么写
2014/08/02 职场文书
公司股东出资证明书
2014/11/01 职场文书
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫