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 相关文章推荐
jquery tab插件精简版分享
Sep 10 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
Nov 20 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
Feb 19 Javascript
JS合并数组的几种方法及优劣比较
Sep 19 Javascript
JavaScript之数组(Array)详解
Apr 01 Javascript
jquery.validate使用时遇到的问题
May 25 Javascript
JS对HTML表格进行增删改操作
Aug 22 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
Dec 14 Javascript
ajax图片上传,图片异步上传,更新实例
Dec 30 Javascript
JQuery实现图片轮播效果
May 08 jQuery
基于AngularJS实现的工资计算器实例
Jun 16 Javascript
WebPack工具运行原理及入门教程
Dec 02 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
apache+php+mysql安装配置方法小结
2010/08/01 PHP
php模拟用户自动在qq空间发表文章的方法
2015/01/07 PHP
PHP 类与构造函数解析
2017/02/06 PHP
PHP等比例压缩图片的实例代码
2018/07/26 PHP
javascript编程起步(第五课)
2007/02/27 Javascript
JQuery优缺点分析说明
2010/06/09 Javascript
jquery $.ajax各个事件执行顺序
2010/10/15 Javascript
jQuery数组处理方法汇总
2011/06/20 Javascript
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
把jQuery的类、插件封装成seajs的模块的方法
2014/03/12 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
JavaScript实现在页面间传值的方法
2015/04/07 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
使用typescript开发angular模块并发布npm包
2018/04/19 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
2018/12/28 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
vue实现公共方法抽离
2020/07/31 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
pytorch:torch.mm()和torch.matmul()的使用
2019/12/27 Python
python通过文本在一个图中画多条线的实例
2020/02/21 Python
百联网上商城:i百联
2017/01/28 全球购物
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
2013年员工自我评价范文
2013/12/27 职场文书
奶茶店创业计划书范文
2014/01/17 职场文书
2014道德模范事迹材料
2014/02/16 职场文书
国贸专业的职业规划书
2014/03/15 职场文书
先进事迹材料范文
2014/12/29 职场文书
2015年七一建党节活动总结
2015/03/20 职场文书
综合办公室岗位职责
2015/04/11 职场文书
SQLServer之常用函数总结详解
2021/08/30 SQL Server