我需要一个 JavaScript 字符串,它可以包含一个或多个以字母开头的单词。每个单词可以在相邻字母/数字之间包含数字、字母、破折号和下划线。单词不得以破折号或下划线开头或结尾。行尾允许有空格。第一个单词必须以字母开头,长度可以是 1 或更长。
直到我来到下一个
/^[a-zA-Z]+( [a-zA-Z0-9\-\_]*)*[a-zA-Z0-9]+$/
但不幸的是,它不能按我的需要工作。特别是,类型表达式a s--5__f也将通过测试。
我需要一个 JavaScript 字符串,它可以包含一个或多个以字母开头的单词。每个单词可以在相邻字母/数字之间包含数字、字母、破折号和下划线。单词不得以破折号或下划线开头或结尾。行尾允许有空格。第一个单词必须以字母开头,长度可以是 1 或更长。
直到我来到下一个
/^[a-zA-Z]+( [a-zA-Z0-9\-\_]*)*[a-zA-Z0-9]+$/
但不幸的是,它不能按我的需要工作。特别是,类型表达式a s--5__f也将通过测试。
您可以使用
在线查看演示表达式。
细节
^- 行首[a-zA-Z]- 信[a-zA-Z0-9]*- 0 个或多个字母和数字(?:[-_][a-zA-Z0-9]+)*- 0 个或多个重复的连字符或下划线后跟 1 个或多个字母/数字(?:\s[a-zA-Z0-9]+(?:[-_][a-zA-Z0-9]+)*)*- 0次或多次重复...\s- 空格字符[a-zA-Z0-9]+- 1+ 字母/数字(?:[-_][a-zA-Z0-9]+)*- 0 个或多个重复的连字符或下划线后跟 1 个或多个字母/数字\s*- 0 个或多个空格字符$- 行结束。代码示例: