Chcę użyć JavaScript (może być z jQuery), aby przeprowadzić weryfikację po stronie klienta, aby sprawdzić, czy łańcuch pasuje do wyrażenia regularnego:
^([a-z0-9]{5,})$
Idealnie byłoby wyrażenie, które zwróciło prawda lub fałsz.
Jestem początkującym w JavaScript, czy match()
robi to, czego potrzebuję? Wygląda na to, aby sprawdzić, czy część ciągu pasuje do wyrażenia regularnego, a nie całość.
javascript
regex
match
Richard
źródło
źródło
Odpowiedzi:
Użyj,
regex.test()
jeśli wszystko, czego chcesz, to wynik boolowski:... i możesz usunąć
()
wyrażenie regularne, ponieważ nie potrzebujesz przechwytywania.źródło
Użyj
test()
metody:źródło
RegExp
pozwala wstrzykiwać zmienne wartości do łańcucha wyrażeń regularnych.new RegExp("^([a-z0-9]{5,})$")
, aby zadziałałoMożesz również użyć
match()
:Ale
test()
wydaje się być szybszy, jak możesz przeczytać tutaj .Ważna różnica między
match()
itest()
:match()
działa tylko z łańcuchami, aletest()
działa również z liczbami całkowitymi.źródło
match
członka). Polecam jawnie przekonwertować swój numer na ciąg, jeśli chcesz go użyć z wyrażeniem regularnym (String(123)
na przykład).test
działa on o 30% lepiej, gdy chcemy tylko zweryfikować ciąg znaków, aby pasował do wyrażenia regularnego, a nie wyodrębniać z niego podciągów.Użyj,
/youregexp/.test(yourString)
jeśli chcesz tylko wiedzieć, czy łańcuch pasuje do wyrażenia regularnego.źródło
Oto przykład, który wyszukuje pewne tagi HTML, więc jest jasne, że
/someregex/.test()
zwraca wartość logiczną:źródło
źródło
Możesz spróbować tego, działa dla mnie.
źródło
spróbuj tego kwiatu:
źródło
próbować
Pokaż fragment kodu
źródło
0-9
można zmniejszyć aaaaaaaaaaaaaaaaaaaaaall\d
. Och, i że grupa przechwytująca nie jest konieczna.Polecam użycie metody execute, która zwraca null, jeśli nie istnieje dopasowanie, w przeciwnym razie zwraca pomocny obiekt.
źródło
źródło