首页 > 问答 > 正文
正则匹配:以小写字母开头,小写字母结尾,中间可以有一个短横(-)长度小于32字符
var ss = /^[a-z]+([A-Za-z0-9_]|(-?)|[a-z]+$){1,31}/; str="ss-fjdkkldjkskjdskjdksjdkjdkjklskssdkdkffdkdfkdfk"; ss.test(str);
返回的结果是true正常应该返回false。其中{1,31}表示匹配前面的范围在1到31之间,为什么匹配不对?
怪我咯2017-06-12 09:34:53
这个正则我的理解是表示以字母a-z开头,然后()中的内容出现1到31次,()中表示A-Z a-z 0-9 _ - 其中任意一个可以出现>=1次
淡淡烟草味2017-06-12 09:34:53
正则表示式可以这样写
/^(?=.{1,32}$)[a-z]\w*(?:-\w*[a-z])?$/