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 相关文章推荐
ASP中进行HTML数据及JS数据编码函数
Nov 11 Javascript
JQuery Tab选项卡效果代码改进版
Apr 01 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
Feb 16 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
Nov 29 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
Aug 15 Javascript
给angular加上动画效遇到的问题总结
Feb 17 Javascript
JavaScript检测原始值、引用值、属性
Jun 20 Javascript
AngularJS中使用three.js的实例详解
Jul 21 Javascript
详解适配器在JavaScript中的体现
Sep 28 Javascript
webpack.DefinePlugin与cross-env区别详解
Feb 23 Javascript
通过实例解析JavaScript for in及for of区别
Jun 15 Javascript
微信小程序绘制半圆(弧形)进度条
Nov 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
「OVERLORD」动画重要删减!雅儿贝德的背叛?至尊猎杀队结成
2020/04/09 日漫
PHP 5.0对象模型深度探索之类的静态成员
2008/03/27 PHP
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
2009/05/28 PHP
解决File size limit exceeded 错误的方法
2013/06/14 PHP
PHP COOKIE及时生效的方法介绍
2014/02/14 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
PHP实现文件下载【实例分享】
2017/04/28 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
利用js对象弹出一个层
2008/03/26 Javascript
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
特殊情况下如何获取span里面的值
2014/05/20 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
2015/07/27 Javascript
JavaScript学习笔记之DOM基础 2.4
2015/08/14 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
ES6新特性之字符串的扩展实例分析
2017/04/01 Javascript
原生JS+Canvas实现五子棋游戏实例
2017/06/19 Javascript
python下载文件记录黑名单的实现代码
2017/10/24 Python
python中logging包的使用总结
2018/02/28 Python
基于Python列表解析(列表推导式)
2018/06/23 Python
python实现事件驱动
2018/11/21 Python
将Python文件打包成.EXE可执行文件的方法
2019/08/11 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
初婚未育未抱养证明
2014/01/12 职场文书
产品质量承诺书范文
2014/03/27 职场文书
个人四风问题原因分析及整改措施
2014/09/28 职场文书
写给妈妈的感谢信
2015/01/22 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
党小组鉴定意见
2015/06/02 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
Python机器学习之逻辑回归
2021/05/11 Python