---
title: "Regular Expressions och JavaScript"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/182851-regular-expressions-och-javascript"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "casca"
published: "2010-03-17T18:24:07.000Z"
updated: "2010-03-17T19:49:29.000Z"
replies: 4
views: 759
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/182851-regular-expressions-och-javascript"
---

# Regular Expressions och JavaScript

## #1 — casca, 2010-03-17T18:24Z

Försöker skapa en funktion som ska testa styrkan på olika lösenord, och tänkte testa dom mot några olika regular expressions men körde fast redan på första... ;)

Detta är alltså förenklad kod för att felsöka:

```
<script language="javascript">
var password = document.getElementById("password").value;

// Skapa ett regexp som kollar om värdet är siffror och inget annat:
var justnumbers = new RegExp("^\d*$");

// Outputta i en alertbox:
alert(justnumbers.test(password));
</script>
```

**Bör inte värdet som returneras av funktionen justnumbers.test() vara "false" om jag matar in t.ex "123abc" men "true" om jag matar in säg, "123" eller annat värde med bara siffror?** Har inte pysslat sådär jättemycket med JavaScript, men när jag testar regexp-uttrycket i t.ex [RegExr](http://gskinner.com/RegExr/) så funkar det iaf, så det känns som om det inte är där skon klämmer... ;)

Det som händer nu är att jag får upp "false" oavsett om jag matar in "123" eller "123abc" i formulärfältet.

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

## #2 — Peter S, 2010-03-17T18:28Z

Backslash i en sträng eskäjpar kommande tecken. I det här fallet vill du inte göra det utan snarare "^\\\\d\*$".

Jag skulle dock göra så här:

```
var justnumbers = /^\d*$/;
```

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

## #3 — casca, 2010-03-17T18:30Z

Ah men fan, var det så enkelt. :D

Thank ye, thank ye very much!

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

## #4 — nitro2k01, 2010-03-17T18:33Z

Felet ligger i den sömska tolkningen av strängar. För att peta in ett \\ i strängen måste du ange \\\\. Vill till vers leta efter backslash tecken måste du skriva \\\\\\\\ som skickas som \\\\ till regexp-motorn och till sist tolkas som ett escapeat \\.
Ett bättre sätt att ange reguljära uttryck i JS är med slashnotation, då slipper du oroa dig för den första typen av escapening.

```
alert(/^\d*$/.test(password));

// Eller givetvis så här om du känner för det:
// Skapa ett regexp som kollar om värdet är siffror och inget annat:
var justnumbers = /^\d*$/;

// Outputta i en alertbox:
alert(justnumbers.test(password));
```

Hoppsan, för långsam...

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

## #5 — dAEk, 2010-03-17T19:49Z

**Onödigt vetande:**

Slashnotationen är mycket snabbare också. Nuförtiden spelar det kanske mindre roll men förr 
kunde man märka skillnad om man t.ex. loopade igenom en lite längre array som man skapade regexps i.

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/182851-regular-expressions-och-javascript
