/ / JavaScript regex: sprawdź, czy tekst zawiera tylko znaki z zestawu - javascript, regex

JavaScript regex: sprawdź, czy tekst zawiera tylko znaki z zestawu - javascript, regex

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 № 1

Tak 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).