---
title: "regexp till Null"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/85703-regexp-till-null"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Palle"
published: "2003-09-10T13:41:46.000Z"
updated: "2003-09-10T15:03:07.000Z"
replies: 12
views: 318
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/85703-regexp-till-null"
---

# regexp till Null

## #1 — Palle, 2003-09-10T13:41Z

Använder en regexp-funktion i ett textfält för att det endast skall användas siffror i fältet, 
om jag skriver en bokstav så försvinner den - korrekt. Men värdet blir ändå mer än *"inget"*..

```
[red]<input type="text" name="bar" onkeyup="this.value=this.value.replace(/\D/g,'');" />[/red]
```

Jag använder sedan en annan funktion för att kolla så att något värde postats i fältet, 
tyvärr uppfylls alltid if-satsen hur jag än gör. 

```
[red]if(document.foo.bar.value!=='') { alert('whatever..'); }[/red]
```

Förmodar att jag bör göra något med regexp-funktionen för att verkligen få den *"tom"*.
Frågan är bara vad?

&nbsp;

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

## #2 — Peter S, 2003-09-10T13:46Z

Hint: slarvfel nedan  ;) 

```
if(document.foo.bar.value![b]==[/b]'') { alert('whatever..'); }
```

 :)

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

## #3 — Fredde Mannen, 2003-09-10T13:49Z

Visst du hindrar den från att ange en bokstav, men du kan fortfarande ange ett blanksteg el? 
Och om variabeln innehåller ett blanksteg så får den ett värde som inte är null. 

Dvs var = " ";

då har var ett värde som är 1 om du kör lenght(var) t ex. 

:OO

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

## #4 — dectgap, 2003-09-10T13:57Z

> **Peter S skrev:**
>
> Hint: slarvfel nedan  ;) 
>
>
> ```
> if(document.foo.bar.value![b]==[/b]'') { alert('whatever..'); }
> ```
>
> 
>  :)

Är det samma sak i JavaScript som PHP, att *!==* kontrollerar både innehåll och typ? *alert('whatever..')* körs alltså om *document.foo.bar.value* inte har samma värde eller typ som *''*?

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

## #5 — Palle, 2003-09-10T13:58Z

Har även testat detta utan önskat resultat: 

```
[red] onkeyup="re=/(\d*)/; re.exec(this.value); this.value=RegExp.$1;"[/red]
```

Peter: \*gnuggar ögonen\* Va?

Fredde: Jag kan göra mellanslag, men det tas genast bort av funktionen och problemet kvarstår.

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

## #6 — Fredde Mannen, 2003-09-10T14:01Z

```
if(document.foo.bar.value!=='') { alert('whatever..'); }
```

om du använder istället

```
if(document.foo.bar.value!=null) { alert('whatever..'); }
```

fungerar det bättre?? :q

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

## #7 — Peter S, 2003-09-10T14:01Z

dectgap: Korrekt.

Skall även passa på att rätta mig själv lite grand. Strikt sagt är det inte fel att skriva *!==* i detta fall, dock redundant eftersom typerna ändå är ekvivalenta.

Utöver det fungerar skriptet iallafall för mig.

Palle: Om det är meningen att användaren skall göras uppmärksam när det ej är något värde i fältet kan du ta bort !-operatorn från *if*\-satsen.

 :)

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

## #8 — Palle, 2003-09-10T14:23Z

Aha, ok. Då förstår jag den biten. :bire

Nja, meningen är att funktionen i skarpt läge skall *låsa* ett annat fält om något värde finns.
Som det är nu låses fältet, men det låses inte upp igen om man plockar bort värdena.

Hängde ni med på min invecklade förklaring? ;)

```
[red] function diss(){
	if(document.foo.bar.value!=null){
		document.foo.fbbf.disabled=false;
	} else {
		document.foo.fbbf.disabled=true;
	}
}[/red]
```

**Tillägg:** Fältet låses heller inte upp om man t.ex anger en bokstav som sedan regexp-funktionen tar bort..

&nbsp;

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

## #9 — Peter S, 2003-09-10T14:33Z

```
function diss(){
 if(document.foo.bar.value.length == 0){
  document.foo.fbbf.disabled=false;
 } else {
  document.foo.fbbf.disabled=true;
 }
}

...

<input type="text" name="bar" onkeyup="this.value=this.value.replace(/\D/g,''); diss()" />
```

 :)

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

## #10 — Palle, 2003-09-10T14:44Z

Jo, serru.. den har jag redan testat. ;) :bire

Till saken är att det finns fler textfält som heter *bar*,
och då fungerar det tyvärr inte med *value.length*.

&nbsp; :(

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

## #11 — Peter S, 2003-09-10T14:49Z

Då skulle din tidigare kod resultera i ett "undefined". Om det nu är så att du har fler fält med namnet "bar" så kan du göra så här:

```
if (document.forms["foo"].elements["bar"][[b]index[/b]].value.length == 0)
 // ...
```

Där **index** är det fält i "bar"-hierarkin som representerar ditt önskade.

 :)

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

## #12 — dectgap, 2003-09-10T14:49Z

> **Palle skrev:**
>
> Till saken är att det finns fler textfält som heter *bar*,
> och då fungerar det tyvärr inte med *value.length*.

Men du kan väl inte gärna ha flera textfält med samma namn?

Annars kan du ju skicka "this.value.length" som argument till *diss()*.

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

## #13 — Palle, 2003-09-10T15:03Z

Peter: Den koden var bara en *dummy* som jag testade med. Ska göra ett försök ikväll igen, nu är det dags för annat sköjj.. :OO ;)

dectgap: Uh´jo, det går utmärkt. Skapar arrayer i asp med dessa värden sedan, då är dem komma-separerade värdena utmärkta och spar tid.

Tack så länge! :bire

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/85703-regexp-till-null
