难以形成正则表达式

Difficulty forming a regular expression

我正在尝试检查一个字符串以确保它只包含小写和大写字母、数字 0-9、下划线、破折号和句点。

我一直用于字母、数字、下划线和破折号的正则表达式工作正常,是这样的:

"[^a-zA-Z0-9_-]"

我在添加 space 和句点的检查时遇到困难。

我试过:

"[^a-zA-Z0-9_- ]"(在破折号后添加了 space) “[^a-zA-Z0-9_-\s\.]”(试图转义白色 space 字符)

我也试过把 \s 和 \.在主块之外,也在它们自己的块中。

感谢任何建议。

添加具有特殊含义的字符时要小心:您忘记了连字符。 我认为这就是您要找的:

"[\^ a-zA-Z0-9_,\.\-]"

连字符(代表字符)必须位于(否定)字符 class 的开头或结尾。

字符里面class句点是一个普通字符,不需要转义。

let pattern = "[^a-zA-Z0-9_. -]+"