webForumDet fria alternativet

regexp för tal >0

Webbutveckling

19 svar · 822 visningar · startad av neversleep

Medlem sedan okt. 2001230 inlägg
Frågan#1

Hej

Har ett fungerande reg expr som jag fått hjälp med. Detta fungerar på heltal och decimaltal med kommatecken. Skulle behöva utöka detta att gälla tal större än 0

dvs 0,1 och 1 och 1,0 ska fungera

detta är vad ja ghar

^(:?\d+,)?\d+$

Medlem sedan juni 20019 519 inlägg
#2

red.

oj lite fel tänkt :r återkommer

Medlem sedan juni 20019 519 inlägg
#3
^(\d*,?\d+)$

där ska den träffa:
0,1
1,0
1,11
,0
1
osv.

Om du vill även ha . som ett val:

^(\d*(,|.)?\d+)$
Medlem sedan dec. 20025 483 inlägg
#4

Men den träffar även 0 och 0,0. I stället

^0,\d*?[1-9]|[1-9]+(?:,\d+)?$
Medlem sedan juni 20019 519 inlägg
#5

just ja ;) förlåt ;)

Medlem sedan okt. 2001230 inlägg
#6

stort tack till er båda

Medlem sedan juni 20019 519 inlägg
#7

... kollade lite på Peter S kod... blir det inte problem om vi har 10,1?

^0,\d*?[1-9]|[1-9]\d*?(?:,\d+)?$

ska det kanske vara?

Medlem sedan dec. 20025 483 inlägg
#8

Helt klart!

Medlem sedan sep. 20005 700 inlägg
#9

Här kommer mitt förslag:

^((0,\d*[1-9]$)|([1-9]\d*(,\d+)?))$

red/ Uppdaterade den något för att fungera med positiva heltal < 10 :)
red/ Uppdaterade den igen så att den inte accepterar tal utan nuffra före decimalen, typ ,56.

Medlem sedan dec. 20025 483 inlägg
#10

Matchar den positiva heltal < 10? ;)

Medlem sedan sep. 20005 700 inlägg
#11

Peter S skrev:

Matchar den positiva heltal < 10? ;)

Ja, nu :)

Medlem sedan juni 20019 519 inlägg
#12

Gein skrev:

01,1 kommer matchas som 1,1 automagiskt.

testade Peter S och "min"... ser ut som den gör det redan ;)

Medlem sedan sep. 20005 700 inlägg
#13

voigtann1 skrev:

testade Peter S och "min"... ser ut som den gör det redan ;)

:)
Ärligt talat så missade jag helt din korrigering av Peter S ursprungliga lösning, det var därför jag började med en egen. Måste varit lite snabb när jag läste.
MEN, eran lösning accepterar ",56" som heltalet 56 :p
Eran verkar dessutom få två matchingar på t.ex. 0,111 (en vid 0,1 och en vid 11). (iaf enligt detta test)

Medlem sedan juni 20019 519 inlägg
#14

Gein skrev:

:)
MEN, eran lösning accepterar ",56" som heltalet 56 :p
Eran verkar dessutom få två matchingar på t.ex. 0,111 (en vid 0,1 och en vid 11).

Kallas Special feature ;)

Medlem sedan dec. 20025 483 inlägg
#15

Gein: din senaste revidering går att förenkla och förbättra ytterligare

^(?:0,\d*[1-9]|[1-9]\d*(?:,\d+)?)$
Medlem sedan juni 20019 519 inlägg
#16

01,00 matchas då inte Peter ;)

Medlem sedan dec. 20025 483 inlägg
#17

Så länge vi använder det decimala talsystemet förstår jag inte varför man skulle skriva nollor framför ett heltal längst till vänster på det sättet. Hade det oktala varit aktuellt, däremot.

Inget av de andra uttrycken matchar för den delen heller det skrivsättet.

Medlem sedan sep. 20005 700 inlägg
#18

Peter S skrev:

Så länge vi använder det decimala talsystemet förstår jag inte varför man skulle skriva nollor framför ett heltal längst till vänster på det sättet. Hade det oktala varit aktuellt, däremot.

Inget av de andra uttrycken matchar för den delen heller det skrivsättet.

Det är riktigt, efter en liten ändring så försvann den featuren. Nåväl kan vi enas om att det får bli det slutgiltiga svaret då?

Medlem sedan juni 20019 519 inlägg
#19

Kul tråd ;) Tack för förslag och förbättringar ;)

Medlem sedan dec. 20025 483 inlägg
#20

Gein skrev:

Det är riktigt, efter en liten ändring så försvann den featuren. Nåväl kan vi enas om att det får bli det slutgiltiga svaret då?

Såvida det inte finns ett ännu bättre sätt... Det är ju dessa diskussioner som gör att vi alla lär oss nya saker :bire

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)