首頁 > 問答 > 主體
正規比對:以小寫字母開頭,小寫字母結尾,中間可以有一個短橫(-)長度小於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])?$/