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(AJAX)解析XML的代码(兼容FIREFOX/IE)
Jul 11 Javascript
javascript委托(Delegate)blur和focus用法实例分析
May 26 Javascript
javascript实现五星评分功能
Nov 10 Javascript
快速掌握Node.js模块封装及使用
Mar 21 Javascript
js创建jsonArray传输至后台及后台全面解析
Apr 11 Javascript
解决前端跨域问题方案汇总
Nov 20 Javascript
Vue 仿百度搜索功能实现代码
Feb 16 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
Feb 22 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
May 29 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
Sep 02 Javascript
vueScroll实现移动端下拉刷新、上拉加载
Mar 22 Javascript
JavaScript正则表达式验证登录实例
Mar 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
PHP异步调用socket实现代码
2012/01/12 PHP
PHP实现视频文件上传完整实例
2014/08/28 PHP
怎样搭建PHP开发环境
2015/07/28 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
jQuery UI AutoComplete 使用说明
2011/06/20 Javascript
jquery判断元素的子元素是否存在的示例代码
2014/02/04 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
深入浅析JavaScript中的constructor
2016/04/19 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
Vue.js动态组件解析
2016/09/09 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
第一个Vue插件从封装到发布
2017/11/22 Javascript
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
React 高阶组件入门介绍
2018/01/11 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
微信小程序聊天功能的示例代码
2020/01/13 Javascript
JavaScript动态生成表格的示例
2020/11/02 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
Python缓存技术实现过程详解
2019/09/25 Python
PHP面试题及答案一
2012/06/18 面试题
会计岗位说明书
2014/07/29 职场文书
幼儿园个人师德总结
2015/02/06 职场文书
研究生论文答辩开场白
2015/05/27 职场文书
美甲店的创业计划书模板
2019/08/23 职场文书
Mysql 如何实现多张无关联表查询数据并分页
2021/06/05 MySQL
linux下安装redis图文详细步骤
2021/12/04 Redis
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python