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 相关文章推荐
利用WebBrowser彻底解决Web打印问题(包括后台打印)
Jun 22 Javascript
JS获取各种宽度、高度的简单介绍
Dec 19 Javascript
JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)
Jun 12 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
Jun 20 Javascript
js仿QQ邮箱收件人选择与搜索功能
Feb 10 Javascript
ECMAScript6 新特性范例大全
Mar 24 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
Dec 09 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
Jun 14 Javascript
layui table 参数设置方法
Aug 14 Javascript
js实现简单掷骰子小游戏
Oct 24 Javascript
vue select 获取value和lable操作
Aug 28 Javascript
vue如何清除浏览器历史栈
May 25 Vue.js
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开发的一些注意点总结
2010/10/12 PHP
php存储过程调用实例代码
2013/02/03 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
2019/07/24 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
JS表格组件神器bootstrap table使用指南详解
2017/04/12 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
解决低版本的浏览器不支持es6的import问题
2018/03/09 Javascript
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
jquery实现有过渡效果的tab切换
2020/07/17 jQuery
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
2020/12/01 Javascript
Python循环语句中else的用法总结
2016/09/11 Python
python登录并爬取淘宝信息代码示例
2017/12/09 Python
python实现教务管理系统
2018/03/12 Python
Python遍历numpy数组的实例
2018/04/04 Python
Python八皇后问题解答过程详解
2019/07/29 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
英国女装网上商店:I Saw It First
2018/10/18 全球购物
linux面试题参考答案(9)
2015/01/07 面试题
GWebs公司笔试题
2012/05/04 面试题
《青海高原一株柳》教学反思
2014/04/25 职场文书
超市优秀员工事迹材料
2014/05/01 职场文书
党支部三严三实对照检查材料思想汇报
2014/09/29 职场文书
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL
springboot读取resources下文件的方式详解
2022/06/21 Java/Android
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL