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 firefox不显示本地预览图片问题的解决方法
Nov 12 Javascript
JQuery插入DOM节点的方法
Jun 11 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
Mar 01 Javascript
node.js实现端口转发
Apr 14 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
May 16 Javascript
JS按条件 serialize() 对应标签的使用方法
Jul 24 Javascript
jQuery dateRangePicker插件使用方法详解
Jul 28 jQuery
vue bus全局事件中心简单Demo详解
Feb 26 Javascript
vue实现提示保存后退出的方法
Mar 15 Javascript
webpack4 CSS Tree Shaking的使用
Sep 03 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
Jan 17 Javascript
微信小程序自定义顶部组件customHeader的示例代码
Jun 03 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
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
基于javascript数组实现图片轮播
2016/05/02 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
require.js配合插件text.js实现最简单的单页应用程序
2016/07/12 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
javascript网页随机点名实现过程解析
2019/10/15 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
详解Python网络爬虫功能的基本写法
2016/01/28 Python
再谈Python中的字符串与字符编码(推荐)
2016/12/14 Python
python使用fork实现守护进程的方法
2017/11/16 Python
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
Python中的Numpy矩阵操作
2018/08/12 Python
Django csrf 两种方法设置form的实例
2019/02/03 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
2020/04/08 Python
用pushplus+python监控亚马逊到货动态推送微信
2021/01/29 Python
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
表彰先进集体通报
2014/01/12 职场文书
运动会广播稿30字
2014/01/21 职场文书
优秀老员工获奖感言
2014/02/15 职场文书
《陶罐和铁罐》教学反思
2014/02/19 职场文书
工程师岗位职责规定
2014/02/26 职场文书
合作意向协议书范本
2014/03/31 职场文书
2016年暑假学生家长评语
2015/12/01 职场文书
python爬虫请求库httpx和parsel解析库的使用测评
2021/05/10 Python
使用Redis实现实时排行榜功能
2021/07/02 Redis