---
title: "Steppa upp version?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/192440-steppa-upp-version"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "bassebhu"
published: "2014-09-24T22:26:19.000Z"
updated: "2015-02-04T07:04:40.000Z"
replies: 4
views: 2355
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/192440-steppa-upp-version"
---

# Steppa upp version?

## #1 — bassebhu, 2014-09-24T22:26Z

Hallå!

Jag håller på att bygga en funktion som tar ett fritextfält och ökar på dess värde med ett hack. Några exempel på vad jag vill att den ska göra:

1 blir 2
1\.1 blir 1.2
9\.9 blir 9.10
v9,0 blir v9,1
v.9 blir v.10
v.19,9 blir v.19,10
v.19.0 blir v.19.1
v19 blir v20
etc.

Här är mitt fulförsök som funkar sånär som på att den inte klarar decimalerna och att is_numeric inte tar både punkt och komma vad det verkar.

```
function next_version($str)
{
	$string = $str;
	if( preg_match("/[0-9.,vV]/",$str) && strtolower(substr($str, 0, 2)) == 'v.' ) {
		$str = substr($str, 2);
		if( is_numeric($str) ) {
			$str = $str+1;
			$str = substr($string, 0, 2) . $str;
			$string = $str;
		}
	}
	elseif( preg_match("/[0-9.,vV]/",$str) && strtolower(substr($str, 0, 1)) == 'v' ) {
		$str = substr($str, 1);
		if( is_numeric($str) ) {
			$str = $str+1;
			$str = substr($string, 0, 1) . $str;
			$string = $str;
		}
	}
	elseif( preg_match("/[0-9.,]/",$str) ) {
		if( is_numeric($str) ) {
			$str = $str+1;
			$string = $str;
		}
	}
	return $string;
}
```

Idéer? Tack!

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

## #2 — Lasp, 2014-09-26T09:12Z

Om det är ett heltal vill du öka med ett heltal, annars skall decimaler ökas!
Olika om det är tiondel eller hundradel?

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

## #3 — voigtann1, 2014-09-26T12:52Z

är det i en sträng eller strängarna är "v1" osv eller är det "vi är på v1" som du vill uppdatera? Annars är det ju bara att hitta det sista talet (\\d+)$ och jobba med det?

med javascript (borde vara rätt likt i PHP): 

```
var version = function(str) {
  return String(str).replace(/(\d+)$/img, function(match, a){
    return parseInt(a, 10) + 1;
  });
};
```

skall försöka få en php site jag kan testa det på.

php kan kanske vara:

```
function bump_number($groups) {
	return intval($groups[1], 10) + 1;
}

function version($str) {
	return preg_replace_callback('/(\d+)$/im', 'bump_number', $str);
}
```

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

## #4 — bassebhu, 2015-02-04T00:58Z

Wow, geni. Har inte listat ut hur det går till än, men det funkar :D  

Tack!

En liten grej bara. Går det att lägga till så att den bara gör detta om strängen börjar med en siffra eller med v i gemen eller versal (v eller V)?

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

## #5 — voigtann1, 2015-02-04T07:04Z

kolla det i version funktionen och se om .substr(0,1) är "v" eller "V"

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

---

Tråden på webben: https://www.webforum.nu/amne/php/192440-steppa-upp-version
