Autor | Zpráva | ||
---|---|---|---|
Ratimor Profil * |
#1 · Zasláno: 25. 2. 2011, 04:13:31
čau lidi, možná už jsem tupej, ale reg. výrazy mi nikdy nešli, věřím že když na to koukne někdo kdo se v nich trošičku orientuje tak mi poradí.
pořebuju nahradit každý znak v inputu za nic (cili vlastně smazat) s podminkou ze musi zustat matematicky operator na 1. miste(pokud je) a na 2. a zaroven poslednim miste musi byt cislice s libovolnym poctem ciger možná jsem pochopil špatně co dělá ^ document.getElemenyById('vaha' + moznost).value.replace(/^[^\+\-\*\/]^\d+$/gi,""); omlouvam se jestli to tu uz nekde je neco podobneho, ale nenasel jsem pořádne nic diky Ondra |
||
Ratimor Profil * |
#2 · Zasláno: 25. 2. 2011, 13:18:56
Ratimor:
hmm a hnidopichům se omlouvám :) bylo pozdě a čj s diakritikou šla už asi spát :D |
||
Chamurappi Profil |
#3 · Zasláno: 25. 2. 2011, 13:53:36
Reaguji na Ratimora:
„ /^[^\+\-\*\/]^\d+$/ “
Druhá a třetí stříška mi tam připadají nadbytečné. „možná jsem pochopil špatně co dělá ^“ Značí buď začátek řetězce (někdy řádku), nebo „všechno vyjma této množiny znaků“ uvnitř množiny znaků. |
||
Ratimor Profil * |
#4 · Zasláno: 25. 2. 2011, 14:34:39
no, mě to přišlo stejné jako zápis
/^(^[\+\-\*\/]\d+$)/gi |
||
Ratimor Profil * |
#5 · Zasláno: 25. 2. 2011, 14:40:58
mm tak reg exp bude správně :) asi teda chyba bude v errorlistu, sry :) Object #<an HTMLDocument> has no method 'getElemenyById'
|
||
Chamurappi Profil |
#6 · Zasláno: 25. 2. 2011, 14:55:39
Reaguji na Ratimora:
„getElemenyById“ Překlep. |
||
Ratimor Profil * |
#7 · Zasláno: 25. 2. 2011, 15:14:52
tak jsem se dopidil k tomu ze je spatne ten regular :)
var str = "12s"; alert(str.replace(/^(^[\+\-\*\/]\d+$)/gi,"")); |
||
Kajman_ Profil * |
str.match(/^[*\/+-]?[0-9]+/)[0] Ale chtělo by to ošetřit možnost, že match vrátí null místo pole, to už určitě problém nebude. |
||
Ratimor Profil * |
#9 · Zasláno: 25. 2. 2011, 15:48:07
Kajman:
no, to je asi trošku mimo, ten reg by nemel byt spatne podle toho co jsem zkousel tady www.pagecolumn.com/tool/regtest.htm ale nenahradi se, nechapu spatne jak funguje replace? ohledně toho řešení tak na 1. miste muze byt i cislo, a pocet cifer neznamy.. to uz to muzu rovnou projet pres for a vyhladit vsechno krom cisel a mat operatoru |
||
Kajman_ Profil * |
#10 · Zasláno: 25. 2. 2011, 16:39:50
Možná jsem nestihl příspěvek s replace rychle opravit smysluplnějším s match. Zkuste ten s match, mělo by to jít.
function parseOperatorInt(s) { if(typeof s != "string") return null; var m=s.match(/^[*\/+-]?[0-9]+/);//nepovinny operator nasledovany cislicemi if(!m) return null; return m[0].replace(/^([0-9])/,'+$1');//pridani pluska, neni-li operator } var str = "12s"; window.alert(parseOperatorInt(str)); |
||
Ratimor Profil * |
#11 · Zasláno: 25. 2. 2011, 17:21:55
paráda, dík moc :] jen jsem zaměnil ještě + za * aby se dalo napsat i jen minus a pak aby se dala psat další číslice ale šlape to konečně skvěle :] jinak ano, moje min reakce byla na jeste nezmeneny prispevek :)
|
||
Časová prodleva: 13 let
|
0