我正在寻找一个字符串的正则表达式,它需要:
- 只包含A-Z a-z 0-9 _ - .
- 不能以_ - .开头或结尾。
- 不能包含连续的特殊字符或它们的组合。
- 最长36个字符,最短1个字符。
正确:
abcd-efgH
1
a
123
abc
abc-asd-123-asd_asd.asd
错误:
-
abc-_asd
abc.
abc.-asd
123123-123123-ads--asd
091-asdsad---
我搜索了一下,找到了以下内容:
/^(?!.*[^\na-z0-9]{2})(?=.*[a-z0-9]$)[a-z0-9].*$/gim
但这样可以允许所有特殊字符,而不仅限于我检查的那三个。
^(?!.*[-_.]{2})(?!.*[-_.]$)[^-_.][-\w.]{0,35}$
。 - Cary Swoveland$abc
,其中$
不是允许的字符。但是^(?!.*[-_.]{2})(?!.*[-_.]$)[a-zA-Z0-9][-\w.]{0,35}$
应该可以正常工作。 - anubhava