---
title: "Samma gamla preg_match, ja vet"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/98077-samma-gamla-preg-match-ja-vet"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Jontto"
published: "2004-02-24T00:04:07.000Z"
updated: "2004-02-24T17:50:02.000Z"
replies: 4
views: 240
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/php/98077-samma-gamla-preg-match-ja-vet"
---

# Samma gamla preg_match, ja vet

## #1 — Jontto, 2004-02-24T00:04Z

Hej!

Hur kollar jag att en sträng är en giltig vecka i formen "envecka-en_vecka_som\_är_större_men_mindre\_än_sista_i\_året".

**Typ:** 
12-43 (rätt)
23-21 (fel)
1-53 (kanske rätt)
1-9 (brabra)

Poängen är att det ska finnas ett "-" i mitten och två (giltiga) veckor vid sidan om (som tillsammans också är giltiga).

Har sökt, men som många andra så lägger jag mig på golvet som en hund som mött sin segrare när det gäller regexp.

...ska lära mig dem ngngång ännu före jag dör.... \*muttra för sig själv\*  :x 

//jontto

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

## #2 — dectgap, 2004-02-24T13:52Z

```php
<?php

$veckorStr = '10-52';

if(preg_match('/^(\d{1,2})-(\d{1,2})$/', $veckorStr, $matches)){
    if($matches[1] < $matches[2] &&
       $matches[1] > 0 &&
       $matches[2] <= max(date('W', strtotime('31 december')),52))
        echo 'tillåtet intervall';
    else
        echo 'otillåtet intervall';
} else
    echo 'otillåtet intervall';

?>
```

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

## #3 — Jontto, 2004-02-24T15:50Z

Tack så mycket!

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

## #4 — Jontto, 2004-02-24T17:23Z

Hmm....verka vara ngt i preg_matchen som inte fungerar. När jag kör koden 

```php
$veckorStr = "10-52";

if(preg_match('/^(d{1,2})-(d{1,2})$/', $veckorStr, $matches)){
    if($matches[1] < $matches[2] &&
       $matches[1] > 0 &&
       $matches[2] <= max(date('W', strtotime('31 december')),52))
        echo 'tillåtet intervall';
    else
        echo 'otillåtet intervall 1';
} else
    echo 'otillåtet intervall 2';
```

 så ger det ut bara "otillåtet intervall 2" hela tiden, även om veckorna är ok.

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

## #5 — Jontto, 2004-02-24T17:50Z

där saknades visst ett \\ framför d, så det skulle vara "\\d" på båda ställen istället :OO

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

---

Tråden på webben: https://www.webforum.nu/amne/php/98077-samma-gamla-preg-match-ja-vet
