Jak lepiej jest sprawdzić (przetestować), czy tekst zawiera tylko znaki z zestawu (np. Jeśli tekst zawiera tylko znaki interpunkcyjne)
var regex = /[.,-/#!$%^&*;:{}=-_`~()]/g
res = text.replace(regex, "")
if (res) return false
więc zrobiłem to z zamianą, czy można to zrobić za pomocą regex.test?
Odpowiedzi:
8 dla odpowiedzi № 1Tak to jest. Istnieją dwie możliwości. Jednym z nich jest to, czego używasz kotwice aby stwierdzić, że pełny ciąg składa się z następujących:
var regex = /^[.,-/#!$%^&*;:{}=-_`~()]+$/;
if(regex.test(text))
Alternatywnie możesz użyć zanegowanej klasy znaków i sprawdzić, czy pasuje, a następnie ponownie negować wynik
var regex = /[^.,-/#!$%^&*;:{}=-_`~()]/;
if(!regex.test(text))
Zauważ, że ,-/
to zakres obejmujący ,-./
. Jest to zbędne i może stać się źródłem błędów, jeśli klasa postaci zostanie kiedykolwiek zmieniona. Możesz uprościć swoją klasę postaci do:
[.,/#!$%^&*;:{}=_`~()-]
(Lub zanegowaną wersję tego, w zależności od wybranego podejścia).