webForumDet fria alternativet

else i reguljärt uttryck

JavaScript

2 svar · 195 visningar · startad av Nexus86

Medlem sedan okt. 20023 030 inlägg
Frågan#1

Går det på något sätt att kolla om ett reguljärt uttryck fanns? T.ex.

text = text.Replace(/(\n)?(halloj)(\n)?/ig, (("$1" != "")?"<br>":"")."$2".(("$3" != "")?"<br>":""));

OBS: Endast ett exempel. Detta skulle gå att göra mycket lättare annars. :)

Medlem sedan sep. 20021 655 inlägg
#2

If och else går bra:

<script type="text/javascript">
var text = "ojojoj\nhalloj\n ojojoj ojojoj\ntjena ojojoj";

text.match(/(\n)?(halloj)(\n)?/ig);

text = text.replace(/(\n)?halloj(\n)?/ig, ((RegExp.$1=="\n") ? "<br>" : "") + RegExp.$2 + ((RegExp.$3=="\n") ? "<br>" : ""));

document.write(text);
</script>

...men jag går bet när du ska göra en global search av det. match() använder jag eftersom replace() inte sparar träffarna någonstans, så vitt jag vet. T ex syftar alltså inte RegExp.$1 på första matchningen vid replace(), utan första matchningen vid match(). Om replace() sparar träffarna borde det lösa problemet med global search.

Medlem sedan okt. 20023 030 inlägg
#3

Ok.. Tack iaf! Men om det finns labels och goto i javascript så går det ju att fixa ändå. Det är bara att kolla efter en replace om man hittar en ny match, isåfall går man tillbaka till början om inte, går den vidare i koden. :)

Finns det kanske något sådant?

265 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)