Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Większe, mniejsze, lub równe niż wyrażenie regularne.
Forum PHP.pl > Forum > Przedszkole
S_Olewniczak
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?
wookieb
Jak ciąg może być mniejszy lub wiekszy?
S_Olewniczak
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.