bxAttachmentDisplayName.js 937 B

12345678910111213141516171819202122232425262728
  1. const ILLEGAL = /[/\\:*?"<>|\u0000-\u001f]/g
  2. export function sanitizeRemarkBaseName(remark) {
  3. const cleaned = String(remark || '')
  4. .trim()
  5. .replace(ILLEGAL, '_')
  6. .replace(/\s+/g, '_')
  7. .replace(/_+/g, '_')
  8. .replace(/^_|_$/g, '')
  9. if (!cleaned) return ''
  10. return cleaned.length > 40 ? cleaned.slice(0, 40) : cleaned
  11. }
  12. function splitExt(fileName) {
  13. const name = String(fileName || '')
  14. const i = name.lastIndexOf('.')
  15. if (i <= 0 || i === name.length - 1) return { base: name, ext: '' }
  16. return { base: name.slice(0, i), ext: name.slice(i) }
  17. }
  18. export function buildApplyAttachmentDisplayName({ remark, originalFileName, index1 }) {
  19. const original = String(originalFileName || '').trim() || '申请附件'
  20. const base = sanitizeRemarkBaseName(remark)
  21. if (!base) return original
  22. const { ext } = splitExt(original)
  23. const n = Math.max(1, Math.floor(Number(index1) || 1))
  24. return `${base}_${n}${ext}`
  25. }