javascript - js正規表示式{}範圍
黄舟
黄舟 2017-06-12 09:32:53
0
2
984

正規比對:以小寫字母開頭,小寫字母結尾,中間可以有一個短橫(-)長度小於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之間,為什麼匹配不對?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(2)
刘奇

這個正規我的理解是表示以字母a-z開頭,然後()中的內容出現1到31次,
()中表示A-Z a-z 0-9 _ - 其中任一個可以出現>=1次

淡淡烟草味

正規表示式可以這樣寫

/^(?=.{1,32}$)[a-z]\w*(?:-\w*[a-z])?$/
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板