Reguläre Übereinstimmung: Beginnend mit einem Kleinbuchstaben und endend mit einem Kleinbuchstaben, in der Mitte kann ein Bindestrich (-) stehen und die Länge beträgt weniger als 32 Zeichen
var ss = /^[a-z]+([A-Za-z0-9_]|(-?)|[a-z]+$){1,31}/;
str="ss-fjdkkldjkskjdskjdksjdkjdkjklskssdkdkffdkdfkdfk";
ss.test(str);
Das zurückgegebene Ergebnis ist
true
Normalerweise sollte es false zurückgeben.
{1,31} bedeutet, dass der Bereich vor dem Abgleich zwischen 1 und 31 liegt. Warum ist der Abgleich falsch?
这个正则我的理解是表示以字母a-z开头,然后()中的内容出现1到31次,
()中表示A-Z a-z 0-9 _ - 其中任意一个可以出现>=1次
正则表示式可以这样写