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学习笔记1 数据类型
Jan 11 Javascript
JQuery的Alert消息框插件使用介绍
Oct 09 Javascript
js操作输入框中选择内容兼容IE及其他主流浏览器
Apr 22 Javascript
浅谈js数据类型判断与数组判断
Aug 29 Javascript
ionic2 tabs使用 Modal底部tab弹出框
Dec 30 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
May 17 Javascript
mpvue项目中使用第三方UI组件库的方法
Sep 30 Javascript
基于Vue实现图片在指定区域内移动的思路详解
Nov 11 Javascript
JS+canvas画布实现炫酷的旋转星空效果示例
Feb 13 Javascript
jQuery属性选择器用法实例分析
Jun 28 jQuery
在vue中根据光标的显示与消失实现下拉列表
Sep 29 Javascript
在vue中动态添加class类进行显示隐藏实例
Nov 09 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/27 PHP
PHP用GD库生成高质量的缩略图片
2011/03/09 PHP
php不使用copy()函数复制文件的方法
2015/03/13 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
根据分辨率不同,调用不同的css文件
2006/08/25 Javascript
ext实现完整的登录代码
2008/08/08 Javascript
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
用Javascript来生成ftp脚本的小例子
2013/07/03 Javascript
兼容最新firefox、chrome和IE的javascript图片预览实现代码
2014/08/08 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
2015/06/10 Javascript
基于jquery实现表格无刷新分页
2016/01/07 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
分析JavaScript数组操作难点
2017/12/18 Javascript
JavaScript 类的封装操作示例详解
2020/05/16 Javascript
Python中操作MySQL入门实例
2015/02/08 Python
浅析Python数据处理
2018/05/02 Python
python随机数分布random测试
2018/08/27 Python
Python爬取成语接龙类网站
2018/10/19 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
Pycharm中如何关掉python console
2020/10/27 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
2021/03/03 Python
css3针对移动端卡顿问题的解决(动画性能优化)
2020/02/14 HTML / CSS
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
数据管理员的自我评价分享
2013/11/15 职场文书
个人查摆剖析材料
2014/02/04 职场文书
绿化工程实施方案
2014/03/17 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
2014年向国旗敬礼活动总结
2014/09/27 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
css3新特性的应用示例分析
2022/03/16 HTML / CSS