Autor Zpráva
Ratimor
Profil *
č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 *
Ratimor:
hmm a hnidopichům se omlouvám :) bylo pozdě a čj s diakritikou šla už asi spát :D
Chamurappi
Profil
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 *
no, mě to přišlo stejné jako zápis
/^(^[\+\-\*\/]\d+$)/gi
což, vlastně vyjadřuje přesně to co chci, nebo se mi alespoň zdá xD nicméně pořád se žádné nahrazování nevykoná :-] jako kvůli špatnému reg exp
Ratimor
Profil *
mm tak reg exp bude správně :) asi teda chyba bude v errorlistu, sry :) Object #<an HTMLDocument> has no method 'getElemenyById'
Chamurappi
Profil
Reaguji na Ratimora:
getElemenyById
Překlep.
Ratimor
Profil *
tak jsem se dopidil k tomu ze je spatne ten regular :)

var str = "12s";   
alert(str.replace(/^(^[\+\-\*\/]\d+$)/gi,""));
co já potřebuju je aby se to nahradilo za 12, kdyby to šlo tak za +12 ale touž je prkotina.. bohužel se to ale nenahradí, nevíš prosím proč?
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 *
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 *
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 *
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 :)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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