Reg. vyraz - nahrazeni znamenek – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Reg. vyraz - nahrazeni znamenek – JavaScript, AJAX, jQuery – Fórum – Programujte.comReg. vyraz - nahrazeni znamenek – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

peter
~ Anonymní uživatel
4016 příspěvků
11. 5. 2018   #1
-
0
-

   

    str = "1*/+-2"
    patt = '[+\\-]+([+\\-])|[/*]+([/*])';    // [+\\-]+([+\\-])    [/*]+([/*])
    reg  = new RegExp(patt,'g')
    while (str.match(reg)!=null)
        {
        str = str.replace(reg,"$1");
        }

To by melo nahradit opakujici znamenka.
Vysledek ted 1-2
Vysledek ocekavany 1/-2
Firefox 58. Co delam spatne s tim reg. vyrazem? A pritom samostatne kazda cast toho reg. vyrazu funguje spravne.
patt = '[+\\-]+([+\\-])'
patt = '[/*]+([/*])'

Nahlásit jako SPAM
IP: 2001:718:2601:258:7cfe:a7...–
gna
~ Anonymní uživatel
1891 příspěvků
11. 5. 2018   #2
-
0
-

$1 je první skupina a $2 ta druhá, bez ohledu na to, která část se matchne.

patt = '[-+]+(?=[-+])|[/*]+(?=[/*])';
...
str.replace(reg,'');
Nahlásit jako SPAM
IP: 213.211.51.–
peter
~ Anonymní uživatel
4016 příspěvků
11. 5. 2018   #3
-
0
-

gna - mrknu

Jen jsem chtel rici, ze uz vim, kde je asi problem. Normalne matchuje zleva. Ja potrebuji zprava. Cili
*/+- ... [+\\-]+([+\\-])|[/*]+([/*])
+ je 1 az n. Neni predem receno, kolik tech n veme. nejspis skonci u 1
Nejspis by to vyresil i spravne polozeny ? a duplikovani druhe zavorky s negaci.
[+\\-]+?[^+\\-]
Ale ty rovnitka jsem videl v dokumentaci, kdysi, tak mrknu, jestli to nedela presne totez.

Nahlásit jako SPAM
IP: 2001:718:2601:258:7cfe:a7...–
peter
~ Anonymní uživatel
4016 příspěvků
11. 5. 2018   #4
-
0
-

Jj, tak je to presne, co jsem si myslel, podle dokumentace :)
A samozrejme minusko na zacatku [-xyz] se nemusi komentovat [xyz\\-], ale ja chci zachovat poradi znaku v ramci celeho programu.

Nahlásit jako SPAM
IP: 2001:718:2601:258:7cfe:a7...–
gna
~ Anonymní uživatel
1891 příspěvků
11. 5. 2018   #5
-
0
-

Tady je $1 -- '[+\\-]+([+\\-])|[/*]+([/*])'

a tady $2 -- '[+\\-]+([+\\-])|[/*]+([/*])'

Když se matchne '[+\\-]+([+\\-])|[/*]+([/*])', tak $1 nic neobsahuje. Když to bude matchovat zprava, tak se posere zase ta první část.

U toho původního patternu ale můžeš zůstat s replace na "$1$2".

Nahlásit jako SPAM
IP: 213.211.51.–
peter
~ Anonymní uživatel
4016 příspěvků
11. 5. 2018   #6
-
0
-

Hele, mozne to je. Nekde uz jsem resil problemy se zavorkami, ale je to uz delsi cas. Mozna to bylo u php.
a(b)|c(d)
Kdyz nasel a(b), tak $1=b. Kdyz ne, tak dalsi test byl na c(d) a $1=d. Ale fakt si nejsem jisty :)
Ja uz to pak v tom js zacal resit callback funkci a zobrazoval jsem si vsechno. A nejspis to funguje presne, jak popisujes, protoze mi to tam pak alertovalo undefined v miste, kde jsem to necekal

str = str.replace(reg, calc.x);
calc.x = function(match, a, b)
	{
	alert([match, a, b])
	return '';
	}

Kazdopadne dik, problem mi to vyresilo.

Nahlásit jako SPAM
IP: 2001:718:2601:258:7cfe:a7...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý