You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript上传文件名校验实现:仅允许最多11位纯数字命名文件

上传文件名校验JS实现方案

你需要额外补充一个隐藏的文件选择input来触发系统文件选择弹窗,完整实现代码如下:

HTML部分

<!-- 原有上传按钮 -->
<button type="button" onclick="upload()" value="upload"  id="buttonUpload">Upload</button>
<!-- 新增隐藏的文件选择框 -->
<input type="file" id="fileInput" style="display: none;" />

JavaScript部分

const fileInput = document.getElementById('fileInput');
// 绑定文件选择后的校验逻辑
fileInput.addEventListener('change', handleFileSelect);

// 点击上传按钮触发文件选择
function upload() {
  fileInput.click();
}

// 文件选择后的校验逻辑
function handleFileSelect(e) {
  const selectedFile = e.target.files[0];
  if (!selectedFile) return;

  // 拆分文件名主名和后缀
  const lastDotPosition = selectedFile.name.lastIndexOf('.');
  let mainName, suffix;
  if (lastDotPosition === -1) {
    mainName = selectedFile.name;
    suffix = '';
  } else {
    mainName = selectedFile.name.slice(0, lastDotPosition);
    suffix = selectedFile.name.slice(lastDotPosition);
  }

  // 匹配规则:主名仅允许1-11位阿拉伯数字
  const validateReg = /^\d{1,11}$/;
  if (!validateReg.test(mainName)) {
    alert('文件名不符合要求:主名仅允许1-11位阿拉伯数字,不能包含字母、特殊字符、空格');
    // 清空选择记录,避免同一个文件重复选择不触发事件
    fileInput.value = '';
    return;
  }

  // 校验通过,此处写入你的实际上传逻辑即可
  console.log('文件校验通过,可上传:', selectedFile);
}

规则说明

  • 核心校验正则/^\d{1,11}$/用^和$限定整个主名必须完全匹配规则,\d对应0-9阿拉伯数字,{1,11}限制长度范围,自动排除字母、特殊字符、空格的情况。
  • 拆分文件名时取最后一个.的位置切分,避免文件名包含多个.时校验出错。
  • 若需要额外限制文件后缀,可在校验逻辑中补充对suffix的判断,比如仅允许png格式可添加if (suffix.toLowerCase() !== '.png') { 提示后缀不合法 }。

内容的提问来源于stack exchange,提问作者Michael 777

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:06:04