正規比對:以小寫字母開頭,小寫字母結尾,中間可以有一個短橫(-)長度小於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之間,為什麼匹配不對?
人生最曼妙的风景,竟是内心的淡定与从容!
這個正規我的理解是表示以字母a-z開頭,然後()中的內容出現1到31次,()中表示A-Z a-z 0-9 _ - 其中任一個可以出現>=1次
正規表示式可以這樣寫
/^(?=.{1,32}$)[a-z]\w*(?:-\w*[a-z])?$/
這個正規我的理解是表示以字母a-z開頭,然後()中的內容出現1到31次,
()中表示A-Z a-z 0-9 _ - 其中任一個可以出現>=1次
正規表示式可以這樣寫