我正在尝试构建一个模式,以便在验证中使用。
我的目标是让第一个字符是字母或数字,其余的都是。
i.ex:
- A'r4nd0m
- 9!h3ll0
- b1llin6s
我想到了:[a-zA-Z0-9_/][.*]++
解决方案是什么?
谢谢!
正如我所评论的,字母或数字是['pL'pN]
。因此,以其中一个开头的字符串将与模式匹配
/^['pL'pN]/
如果第一个数字是数字或字母,则为^[A-Za-z0-9]
。(^
与字符串的开头相匹配。)对于其余的内容,一个简单的.*
就足够了,所以就有了^[A-Za-z0-9].*
。
您可以稍微精简正则表达式:
^[a-zA-Z0-9].*
以字母/数字开头,可以是任何长度或后面的任何字符。
必须使用/^/
将正则表达式锚定在字符串的开头。您的字符类[a-zA-Z0-9_/]
还匹配下划线和斜杠:这是您想要的吗?此外,[.*]++
匹配一个或多个点或星,后面的+
多余地复制了量词。
由于字符串的剩余部分可以是"任何东西",因此没有必要匹配它,并且
/^[A-Za-z0-9]/
会做得很好。