/ / Javascript Regex: Test, wenn Text nur Zeichen aus einer Menge enthält - Javascript, Regex

Javascript Regex: Test, wenn Text nur Zeichen aus einer Menge enthält - Javascript, Regex

Wie ist es besser zu prüfen (testen), ob Text nur Zeichen aus Menge enthält (zB wenn Text nur Satzzeichen enthält)

var regex = /[.,-/#!$%^&*;:{}=-_`~()]/g

res = text.replace(regex, "")

if (res) return false

also habe ich es mit replace gemacht ist es möglich mit regex.test zu tun?

Antworten:

8 für die Antwort № 1

Ja, so ist es. Es gibt zwei Möglichkeiten. Eines ist, dass Sie verwenden Anker um zu behaupten, dass der vollständige String aus diesen besteht:

var regex = /^[.,-/#!$%^&*;:{}=-_`~()]+$/;
if(regex.test(text))

Alternativ können Sie eine negierte Zeichenklasse verwenden, um zu sehen, ob sie übereinstimmt und das Ergebnis dann wieder negiert

var regex = /[^.,-/#!$%^&*;:{}=-_`~()]/;
if(!regex.test(text))

Beachten Sie, dass ,-/ ist eine Palette, die umfasst ,-./. Dies ist redundant und kann zu einer Fehlerquelle führen, wenn die Zeichenklasse jemals geändert wird. Vielleicht möchten Sie Ihre Zeichenklasse vereinfachen auf:

[.,/#!$%^&*;:{}=_`~()-]

(Oder die negierte Version davon, je nachdem, welchen Ansatz Sie wählen.)