Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Większe, mniejsze, lub równe niż wyrażenie regularne.
S_Olewniczak
post 11.08.2009, 18:41:28
Post #1





Grupa: Zarejestrowani
Postów: 189
Pomógł: 1
Dołączył: 28.01.2008

Ostrzeżenie: (0%)
-----


Czy w JavieScript istnieje możliwość sprawdzenia czy podany ciąg znaków jest większy, mniejszy, lub równy niż jakikolwiek ciąg pasujący do podanego wyrażenia regularnego?
Go to the top of the page
+Quote Post
wookieb
post 11.08.2009, 19:02:32
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Jak ciąg może być mniejszy lub wiekszy?


--------------------
Go to the top of the page
+Quote Post
S_Olewniczak
post 11.08.2009, 19:58:18
Post #3





Grupa: Zarejestrowani
Postów: 189
Pomógł: 1
Dołączył: 28.01.2008

Ostrzeżenie: (0%)
-----


Zależy od tego co zawiera(liczby, jak liczby daty, jak daty, a pozostałe według kolejności alfabetycznej). Do porównywania ciągów wykorzystuję następujący algorytm:
[JAVASCRIPT] pobierz, plaintext
  1. /*
  2.  * Natural Sort algorithm for Javascript
  3.  * Version 0.2
  4.  * Author: Jim Palmer (based on chunking idea from Dave Koelle)
  5.  * Released under MIT license.
  6.  */
  7. function naturalSort (a, b) {
  8. // setup temp-scope variables for comparison evauluation
  9. var x = a.toString().toLowerCase() || '', y = b.toString().toLowerCase() || '',
  10. nC = String.fromCharCode(0),
  11. xN = x.replace(/([-]{0,1}[0-9.]{1,})/g, nC + '$1' + nC).split(nC),
  12. yN = y.replace(/([-]{0,1}[0-9.]{1,})/g, nC + '$1' + nC).split(nC),
  13. xD = (new Date(x)).getTime(), yD = (new Date(y)).getTime();
  14. // natural sorting of dates
  15. if ( xD && yD && xD < yD )
  16. return -1;
  17. else if ( xD && yD && xD > yD )
  18. return 1;
  19. // natural sorting through split numeric strings and default strings
  20. for ( var cLoc=0, numS = Math.max( xN.length, yN.length ); cLoc < numS; cLoc++ )
  21. if ( ( parseFloat( xN[cLoc] ) || xN[cLoc] ) < ( parseFloat( yN[cLoc] ) || yN[cLoc] ) )
  22. return -1;
  23. else if ( ( parseFloat( xN[cLoc] ) || xN[cLoc] ) > ( parseFloat( yN[cLoc] ) || yN[cLoc] ) )
  24. return 1;
  25. return 0;
  26. }
[JAVASCRIPT] pobierz, plaintext


Ten post edytował S_Olewniczak 11.08.2009, 20:00:51
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 02:58