ugrás a tartalomhoz

Az Adobe Spry (AS) és a regexp

aeternum · 2011. Szep. 26. (H), 17.58
Van 4 input mezőm, amit AS-jel szeretnék ellenőrizni.

A mezők mindegyike két állapotú: vagy értéket tartalmaz, vagy egyetlen olyan karaktert (most a '/'-jel), ami azt jelzi, hogy abba a mezőbe nem kerül adat.
Az értékek a valós számok halmazából kerülnek ki. Bár, nem teljesen, mert bizonyos tartományba esnek +/-100,00 közé.

Órák óta túrom a netet és a doksikat a megfelelő és MUKODO regexp kifejezésért.
Jelenleg itt tartok: ^([ -]?[0-9]{2}[,][0-9])$|^[/]?$

És a validálás csak félig sem működik: beengedi írni és bármit elfogad jónak.

Spry változó:

var hofok = new Spry.Widget.ValidationTextField(
                "hofok",
                "custom",
                {isRequired:true,
                 characterMasking: '^([ -]?[0-9]{2}[,][0-9])$|^[/]?$',
                 useCharacterMasking:"true", 
                 hint:"00,0", 
                 validateOn:["change"], 
                 additionalError: 'um_msg'});
Ha ehhez még a pattern-t is megadom, akkor viszont nincs validálás, semmit nem enged beírni.

Mit rontok el???

aet
 
1

A / jel elé nem kell \-t

Hidvégi Gábor · 2011. Szep. 26. (H), 18.31
A / jel elé nem kell \-t tenni?
2

lehet hogy nem szövegként

Karvaly84 · 2011. Szep. 26. (H), 19.46
lehet hogy nem szövegként kéne megadni a regexet.
3

A javasolt

aeternum · 2011. Szep. 26. (H), 20.53
változtatások
^([ -]?[0-9]{2}[,][0-9])$|^[\/]?$

eredménye az lett, hogy most már félig sem validál. A megelőző állapotban legalább a mező háttérszíne és a hibaüzenetek kiíródtak. most már azok sem történnek meg.

Pedig piszokul reméltem, hogy nem kell 3 különböző oldalt legyártanom - 4 input egy submit, 2-2 input 1-1 submit, 4 input négy submit- és nem kell vizsgálnom a bejelentkezés tipusát, (teljes adatbevitel, részleges adatbevitel , egyedi adatbevitel) ami alapján dinamikusan töltöm be a szükséges űrlapokat vagy az azokat tartalmazó html állományokat.

A fura az, hogy ezt egy ősöreg JSDHTML frankón megcsinálta ezzel a regexppel:


/* ellenorzi, hogy az input mezok szamok-e vagy per, ha igen, akkor az input mezo szerinti valtozot igazra alltja*/	

function adat_ellenorzes(honnan, adat) 
  { 
    divId = 'mero_hiba';  // hova irjon hibauzenetet
    maszk = /\d|[/]/ ;    // vagy szam vagy per

    if (!maszk.exec(adat)) 
     { kiir(divId, adat, ' nem felel meg!'); 
       document.getElementsByTagName(honnan).value.select;} //ugorjon a hibas mezore (persze nem ugrik! :)
     else 
     { switch (honnan) 
        { case "ph_ho" :
           kiir(divId, '', '');
           break;

          case "ph_ph" :
           kiir(divId, '', '');
           break;

          case "cl_sz" :
           kiir(divId, '', '');
           break;

          case "cl_kk" :
           kiir(divId, '', '');
           break;
        } // end switch

     } // endelse
  } // endfunction adatellenorzes   
Sebaj! jobb is lesz a 3 oldal!
:)))

Legalább gyakorlom a dinamikus oldalbetöltést is!!!
:))))))))))
4

Az ilyen bíbelődésekre régen

Karvaly84 · 2011. Szep. 26. (H), 21.14
Az ilyen bíbelődésekre régen csináltam egy egyszerű oldalt ahol tudok tesztelni. JavaScript-ben működik és hátha segít neked is: http://karvaly.co.cc/regexp/regexp.html, akár le is szedheted a html-t mert minden a html-ben van hogy mobil legyen.
5

Én ezt próbálnám ki, az

Hidvégi Gábor · 2011. Szep. 26. (H), 21.35
Én ezt próbálnám ki, az ominózus sor:
characterMasking: /^([ -]?[0-9]{2}[,][0-9])$|^[\/]?$/,
6

nem megy.. :)

aeternum · 2011. Szep. 26. (H), 22.33
Gábor, az általad javasolt változtatás jó is meg nem is. Az inputot végig írhatom 5 db /-rel, de semmi mást nem enged bevinni. sem szóközt, sem minuszt, sem pedig számértéket.

Karway, ez is egy szép ötlet, csak mégsem segít meghatározni, hogy mi a hiba a kifejezésben. Azért az látszik, hogy abban van a hiba és nem a regexp és a spry összekapcsolódásban.
:)

A turkálás alatt találtam valami regexp debug oldalt is.
megpróbálom újra megtalálni.
:)
7

szerintem írd le milyen

Karvaly84 · 2011. Szep. 26. (H), 22.35
szerintem írd le milyen értéket kel hogy benyeljen a regexp és írunk egyet,lol
8

na asszem megvan.

Karvaly84 · 2011. Szep. 26. (H), 22.44
na asszem megvan. characterMasking helyett regExpFilter. egy forumon láttam.

a link: forums.adobe.com
10

lol

aeternum · 2011. Szep. 26. (H), 23.10
de én akarom megírni! :)

Nos, a regexptester.com szerint ez a jó kifejezés:
^-{0,1}\d{2}[,]{1}\d{1}$|^[\/]{1}
kétjegyű, pozitív vagy negatív tizedestört egy tizedes helyiértékkel vagy egy darab per jel.
A Spray nem nyeli be, csak így: /^-{0,1}\d{2}[,]{1}\d{1}$|^[\/]{1}/, de így is csak a per jelet engedi.

Nézem a filtert.
11

nekem ez jön ki

Karvaly84 · 2011. Szep. 26. (H), 23.23
nekem ez jön ki /^[-]?[\d]{1,2}(?:[,][\d])?$|^\/$/
12

Esetleg egy ilyen?

gabesz666 · 2011. Szep. 27. (K), 14.17
Esetleg egy ilyen?

^-?[0-9]{1,3}(,[0-9]{1,2})?$|^/$
13

Ez is jó, az elején én is ezt

Karvaly84 · 2011. Szep. 27. (K), 14.34
Ez is jó, az elején én is ezt találtam ki nagyjából, de a match így csak azt adja vissza ami a zárójelben van mondjuk a test-hez elég, de ha az egész egyezés kel akkor ki kel zárni, hogy csak a zárójeles részt adja vissza ahhoz meg a "?:" forma kel, ha meg nincs zárójel akkor elfogad 3 jegyű számot is, meg olyat is ahol a tizedes után semmi nincs.
9

Egyébként most engem is

Karvaly84 · 2011. Szep. 26. (H), 22.57
Egyébként most engem is elkezdett érdekelni a dolog, és a Spry.Widget.ValidationTextField.ValidationDescriptors tartalmaz egy gyűjteményt többféle dologra, pl e-mail cím, természetes számok meg ilyesmi, abból puskázz szerintem.