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 № 1Ja, 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.)