此验证适用于允许字母数字字符、空格和破折号,但我无法将最大长度设置为 23。
正则表达式: (^\w+\s*(-?)(\s*\w+\s*)(\w+)$){0,23}
我需要通过的案例:
我需要失败的案例:
单独检查长度可能更方便,但您可以使用前瞻来确认整个表达式在 0 到 23 个字符之间。
(?=^.{0,23}$)(^\w+\s*(-?)(\s*\w+\s*)(\w+)$)
Run Code Online (Sandbox Code Playgroud)
http://rubular.com/r/GVIbG8hDKz