---
title: "Variabel filändelse"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/146050-variabel-filändelse"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "devotion"
published: "2006-04-25T18:38:45.000Z"
updated: "2006-04-26T18:02:56.000Z"
replies: 12
views: 450
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/146050-variabel-filändelse"
---

# Variabel filändelse

## #1 — devotion, 2006-04-25T18:38Z

:e 
Hej!

Jag har följande kod som kontrollerar om filändelsen är txt.

```
<script type="text/javascript">
function checkFileExt(fname, ext){
  if (!new RegExp("\." + ext + "$", "i").test(fname)){
    alert("Du har försökt skicka en fil med fel format!");
    return false;
  }
  return true;
}
```

Hur kan jag gör kontrollen dynamisk. 

Filandelsen är beroende av leverantör och kan hämtas i databas

ex.
Leverantör 1: txt
Leverantör 2: asc
Leverantör 3 dat

Mvh
Henrik

Permalänk: https://www.webforum.nu/p/146050

## #2 — @nders, 2006-04-25T18:40Z

Jag tycker den funktionen ser ut att göra det du vill.
Skickar du inte med filändelsen som parameter två när du kallar på funktionen?

Mvh

Permalänk: https://www.webforum.nu/p/1803862

## #3 — devotion, 2006-04-25T18:43Z

Jo, det gör jag ju kanske...

Men om jag i nuläget försöker skicka upp test.doc... så stoppas den..

Jag kanske inte fattar riktigt...  ;)  

//henrik

Permalänk: https://www.webforum.nu/p/1803866

## #4 — @nders, 2006-04-25T18:43Z

.doc är ju varken txt, dat eller asc, så den ska ju stoppas.
Hur kallar du på funktionen då?

Permalänk: https://www.webforum.nu/p/1803867

## #5 — devotion, 2006-04-25T18:45Z

```
onsubmit="return (validatelist(this) && checkFileExt(this.elements['file1'].value
```

Permalänk: https://www.webforum.nu/p/1803868

## #6 — devotion, 2006-04-25T18:58Z

Gahhh!!!

Missade att kopiera slutet...

```
onsubmit="return (validatelist(this) && checkFileExt(this.elements['file1'].value, 'txt'));
```

Permalänk: https://www.webforum.nu/p/1803876

## #7 — @nders, 2006-04-25T19:19Z

Istället för 'txt' kan du ju skicka in något annat?

Permalänk: https://www.webforum.nu/p/1803886

## #8 — devotion, 2006-04-25T19:21Z

Typ...

```
onsubmit="return (validatelist(this) && checkFileExt(this.elements['file1'].value, '<% =sExt %>'));
```

?

Permalänk: https://www.webforum.nu/p/1803890

## #9 — @nders, 2006-04-26T04:45Z

till exempel. :)

Permalänk: https://www.webforum.nu/p/1803964

## #10 — devotion, 2006-04-26T08:46Z

finns det fler/bättre alternativ?

Att ändra i javascriptet är onödigt krångligt eller?

Permalänk: https://www.webforum.nu/p/1804010

## #11 — nitro2k01, 2006-04-26T08:53Z

Utnyttja kraften i regex! En regex kan matcha flera saker, tex så matchar uttrycket **\\.(doc\|txt\|dat)$** alla tre ändelserna. Följdaktligen kan du anv'nda koden nedan och skicka med en lista med filändelser separerade med **\|** (S k pipe-tecken)

```
<script type="text/javascript">
function checkFileExt(fname, ext){
  if (!new RegExp("\.(" + ext + ")$", "i").test(fname)){
    alert("Du har försökt skicka en fil med fel format!");
    return false;
  }
  return true;
}
...
onsubmit="return (validatelist(this) && checkFileExt(this.elements['file1'].value, 'txt|doc|dat'));
```

Permalänk: https://www.webforum.nu/p/1804014

## #12 — devotion, 2006-04-26T12:36Z

Men i det här fallet så är det ju beroende på vilken leverantör av fil man valt. Dvs inte en lista på olika filformat.

Leverantör 1 txt
Leverantör 2 asc
Leverantör 3 dat

Mvh
Henrik

Permalänk: https://www.webforum.nu/p/1804057

## #13 — devotion, 2006-04-26T18:02Z

Problemet löst... :D 

Mvh
Henrik

Permalänk: https://www.webforum.nu/p/1804131

---

Tråden på webben: https://www.webforum.nu/amne/javascript/146050-variabel-filändelse
