![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam jako że dupa ze mnie nie znawca wyrażeń regularnych proszę was o pomoc w napisaniu warunku który znajdzie mi coś takiego
Napisałem sobie taką funkcję
i teraz chce teraz żeby, wyrażenie znalazło w latających w pętli stringach ciąg podany jako param i dodany do tego znak równości a na końcu w może być coś. Z góry dziękuje za odpowiedz. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
A jakie dane może zawierać zmienna param(liczby, tekst, znaki specjalne)? Najlepiej jak wyalertujesz to co dostajesz z: "^("+ param +"=)\w{1,}$" i nam przedstawisz co tam dostałeś. Jak zawierają się tam znaki specjalne to trzeba dodać przed nimi \. Samo wyrażenie(gdy zmienna parm nie zawiera znaków specjalnych) wygląda poprawnie. A w razie czego je spr. zamieniając parm na jakiś ciąg znaków. Przynajmniej będziesz wiedział czy samo wyrażenie daje Ci to co chcesz (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Zmienna param znaki alfanumeryczne np.
sort[faculty_id], albo sort[12], albo samo sort |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Czyli musisz zamienić te zmienne na np. sort\[faculty_id\], sort\[12\], natomiast samo "sort" powinno już Ci działać. Tak więc użyj przed:
var reg = new RegExp("^("+ param +"=)\w{1,}$"); // jakaś moja rzeźba Funkcji replace na zmiennej parm i pozamieniaj znaki specjalne dodając przed nimi \, nie zapomnij o fladze "g". Tu przydatna stronka: http://www.egrafik.pl/kurs-regex-wyrazenia-regularne/ <- masz tam podane znaki specjalne. Ten post edytował kamil4u 3.10.2010, 19:15:49 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
i wywołanie mam
Ale to nie działa, tak jak powinno. generalnie powinno zamieniać adres ?abc=a&sort[faculty_id]=12 na ?abc=a&sort[faculty_id]=22 Ten post edytował skowron-line 3.10.2010, 20:14:10 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Nienawidzę tych wyrażeń regularnych (IMG:style_emoticons/default/smile.gif)
Znam Cię na tyle, że wiem, że sobie poradzisz (IMG:style_emoticons/default/smile.gif) - proszę: Kod <script> var x = "?abc=a&sort[faculty_id]=12"; var param = "sort\\[faculty_id\\]"; var req = new RegExp("("+param+")=[a-zA-Z0-9_]+", "g"); x = x.replace(req, "$1="+22); alert(x); </script> Jak chcesz tak ja próbowałeś to powinno też chodzić z takim wyrażeniem (IMG:style_emoticons/default/smile.gif) - jak widzisz potrzeba tam dać \\] a nie \] - trochę się pomęczyłem z tym (IMG:style_emoticons/default/tongue.gif) Ten post edytował kamil4u 3.10.2010, 21:04:28 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@kamil4u
Jak to spiąłem z moim skryptem to pokazało że reg is undefined, Cytat Nienawidzę tych wyrażeń regularnych smile.gif true true (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Ach...
Kod <script>
function sort(param, value) { // var url = new URI(); // var query = url.get('query'); var query = "?abc=a&sort[faculty_id]=12"; var newQuery = [], match = 0; var reg = new RegExp("("+param+")=[a-zA-Z0-9_]+", "g"); //query.split('&').each(function(item){ var y = query.split('&'),item; for(item in y){ if(y[item].match(reg) != null) { //zamień w param \\ na \; y[item] = param +'='+ value; match = 1; } newQuery.push(y[item]); } if(match == 0) { newQuery.push(param +'='+ value); } alert( newQuery.join('&') ); } sort('sort\\[faculty_id\\]', 32); </script> |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@kamil4u ostatecznie zrobiłem tak.
Oczywiście +1 dla ciebie bo na nikogo innego w JS nie można tu liczyć (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 00:01 |