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中的undefined 与 null 的区别  补充篇
Mar 17 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
Apr 19 Javascript
js简单实现HTML标签Select联动带跳转
Oct 23 Javascript
jquery validate 自定义验证方法介绍 日期验证
Feb 27 Javascript
理解javascript中的严格模式
Feb 01 Javascript
jquery+json实现分页效果
Mar 07 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
Feb 21 Javascript
原生JS封装animate运动框架的实例
Oct 12 Javascript
vue中实现滚动加载更多的示例
Nov 08 Javascript
react-native android状态栏的实现
Jun 15 Javascript
使用 vue 实现灭霸打响指英雄消失的效果附demo
May 06 Javascript
基于JS判断对象是否是数组
Jan 10 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可变函数学习小结
2015/11/29 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
2015/12/19 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
2016/03/21 PHP
php依赖注入知识点详解
2019/09/23 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
Javascript读取cookie函数代码
2010/10/16 Javascript
js实现幻灯片效果(基于jquery插件)
2013/11/05 Javascript
JS中判断null、undefined与NaN的方法
2014/03/26 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
2016/04/14 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
2016/11/07 Javascript
微信小程序开发之map地图实现教程
2017/06/08 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
基于Nodejs的Tcp封包和解包的理解
2018/09/19 NodeJs
详解Webpack loader 之 file-loader
2018/11/07 Javascript
搭建基于express框架运行环境的方法步骤
2018/11/15 Javascript
Vue开发环境中修改端口号的实现方法
2019/08/15 Javascript
WEB前端性能优化的7大手段详解
2020/02/04 Javascript
js实现表单项的全选、反选及删除操作示例
2020/06/05 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
Nodejs 数组的队列以及forEach的应用详解
2021/02/25 NodeJs
python解析文件示例
2014/01/23 Python
Python去除字符串两端空格的方法
2015/05/21 Python
Python数据类型详解(一)字符串
2016/05/08 Python
Python 中 list 的各项操作技巧
2017/04/13 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
悬挂训练绳:TRX
2017/12/14 全球购物
学期自我评价
2014/01/27 职场文书
社团活动总结范文
2014/04/26 职场文书
大学教师师德师风演讲稿
2014/08/22 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
2015年党员自评材料
2014/12/17 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书
js前端图片加载异常兜底方案
2022/06/21 Javascript