Autor Zpráva
laijk
Profil
Zdravím, mám regulárny výraz '|^\d{1, 3}.\d{1}$|' -mal by skontrolovať či užívateľ zadal čísla vo formáte xxx.x -teda pred bodkou nemusia byť 3 čísla, ale stačí jedno alebo dve
-tuším je to zle lebo mi to vždy hlási chybu, neviem či tam môže byť tá bodka, ale keď chcem aby to skontrolovalo podľa toho formátu xxx.x tak ako by to malo vyzerať??
laijk
Profil
zistil som, že chyba bola v tom \d{1, 3} -poraďte prosím ako mám zapísať aby som mohol zadať ľubovolne jedno až tri čísla, ďakujem
ShiraNai7
Profil
{1, 3}


Ta mezera tam nemá být.
YoSarin
Profil
Tečka v regulárním výrazu znamená "cokoli". Pro své potřeby musíš tu tečku oescapovat:
'|^\d{1,3}\.\d{1}$|'

A poznámka pod čarou - jako znaky uvozující (a ukončující) regexp bych vybral něco jiného než svislítko - aby se ti to pak nepletlo s "nebo". Zkus používat třeba znak ~
edit: a té mezery jsem si nevšiml... :-(
laijk
Profil
ShiraNai7:
ďakujem :) nevedel som

YoSarin:
neviem k čomu je to oescapvanie, čiže namiesto: '|^\d{1,3}.\d{1}$|' by bolo lepšie: '~^\d{1,3}.\d{1}$~' ?

ShiraNai7:
a musí tam byť to spatné lomítko pred bodkou?
ShiraNai7
Profil
laijk:
a musí tam byť to spatné lomítko pred bodkou?

Musí. Protože samotná tečka znamená "jakýkoliv znak". To by potom ten výraz pustil vstupy jako:
1234X5
1234@5
9-1


atd
laijk
Profil
ShiraNai7:
aha, no akurát som sa šiel spýtať prečo to berie aj čiarky, ďakujem
ShiraNai7
Profil
laijk:
Kde to bere čárky? Pokud máš před tou tečkou \ tak by nemělo.
laijk
Profil
ShiraNai7:
predtým to bralo keď som nemal, teraz to funguje tak ako má :)
YoSarin
Profil
laijk:
Jen dodatek - oescapovat tečku znamená přidat "\" před tu ".", náhrada "|" za "~" není oescapování, ani to není nutné - je to čistě na volbě toho kdo ten regulár píše - "~" preferuji protože v regexpu AFAIK nemá žádný jiný speciální význam (narozdíl od "|").
laijk
Profil
YoSarin:
vďaka, budem aj ja používať

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0