Korzystam z wtyczki sprawdzania poprawności jQuery . Świetne rzeczy! Chcę przeprowadzić migrację mojego istniejącego rozwiązania ASP.NET, aby używać jQuery zamiast walidatorów ASP.NET. Brakuje mi zamiennika walidatora wyrażeń regularnych . Chcę być w stanie zrobić coś takiego:
$("Textbox").rules("add", { regularExpression: "^[a-zA-Z'.\s]{1,40}$" })
Jak dodać niestandardową regułę, aby to osiągnąć?
jquery
regex
jquery-validate
PeterFromCologne
źródło
źródło
Odpowiedzi:
Dzięki odpowiedzi redsquare dodałem następującą metodę:
teraz wszystko, co musisz zrobić, aby sprawdzić poprawność względem dowolnego wyrażenia regularnego, to:
Dodatkowo wygląda na to, że istnieje plik o nazwie dodatkowe-metody.
Edytować
pattern
Funkcja jest obecnie najlepszym sposobem, aby to zrobić, dzięki czemu na przykład:http://bassistance.de/jquery-plugins/jquery-plugin-validation/
http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/additional-methods.js
źródło
Możesz użyć metody addMethod ()
na przykład
dobry artykuł tutaj https://web.archive.org/web/20130609222116/http://www.randallmorey.com/blog/2008/mar/16/extending-jquery-form-validation-plugin/
źródło
Miałem trochę problemów ze zebraniem wszystkich elementów do wykonania walidatora wyrażeń regularnych jQuery, ale udało mi się go uruchomić ... Oto kompletny działający przykład. Wykorzystuje wtyczkę „Validation”, którą można znaleźć w jQuery Validation Plugin
źródło
Nie ma powodu, aby definiować wyrażenie regularne jako ciąg.
i
tak jest lepiej, nie?
źródło
var re = new RegExp(regexp);
funkcjiRozszerzając nieco odpowiedź PeterTheNiceGuy:
To pozwoli ci przekazać obiekt wyrażenia regularnego do reguły.
Resetowanie
lastIndex
właściwości jest konieczne, gdyg
naRegExp
obiekcie ustawiono opcję -flag . W przeciwnym razie zacznie się sprawdzanie poprawności od pozycji ostatniego dopasowania z tym wyrażeniem regularnym, nawet jeśli łańcuch tematu jest inny.Kilka innych pomysłów, które miałem, to umożliwienie ci korzystania z tablic wyrażeń regularnych i kolejna reguła negacji wyrażeń regularnych:
Ale ich wdrożenie może być za dużo.
źródło
Jak wspomniano w dokumentacji addMethod :
Uwaga: Chociaż pokusa jest świetna, aby dodać metodę wyrażenia regularnego, która sprawdza parametr pod względem wartości, o wiele czystsze jest kapsułkowanie tych wyrażeń regularnych w ich własnej metodzie. Jeśli potrzebujesz wielu nieco innych wyrażeń, spróbuj wyodrębnić wspólny parametr. Biblioteka wyrażeń regularnych: http://regexlib.com/DisplayPatterns.aspx
Tak, musisz dodać metodę dla każdego wyrażenia regularnego. Narzut jest minimalny, a jednocześnie pozwala nadać wyrażeniu regularnemu nazwę (nie można go lekceważyć), domyślną wiadomość (przydatna) i możliwość ponownego użycia go w różnych miejscach, bez powtarzania samego wyrażenia regularnego.
źródło
Mam to do pracy w następujący sposób:
Upewnij się, że regex jest między
/
:-)źródło
Możesz użyć
pattern
zdefiniowanego wadditional-methods.js
pliku. Zauważ, że ten plik dodatkowy-methods.js musi zostać dołączony po jQuery Sprawdź poprawność zależności, możesz po prostu użyćźródło
To jest działający kod.
źródło
używamy głównie notacji znaczników wtyczki sprawdzania poprawności jquery, a wysłane próbki nie działały dla nas, gdy flagi są w wyrażeniu regularnym, np.
dlatego używamy następującego fragmentu kodu
Oczywiście teraz można połączyć ten kod z jednym z powyższych, aby umożliwić także przekazywanie obiektów RegExp do wtyczki, ale ponieważ nie potrzebowaliśmy go, pozostawiliśmy to ćwiczenie czytelnikowi ;-).
PS: jest do tego dołączona wtyczka, https://github.com/jzaefferer/jquery-validation/blob/master/src/additional/pattern.js
źródło
To działało dla mnie, będąc jedną z reguł sprawdzania poprawności:
Mam nadzieję, że to pomoże
źródło