Regex允许使用单连字符和下划线,但不允许在字符串的开头或结尾
本文关键字:字符串 不允许 开头 结尾 许使用 连字符 下划线 Regex | 更新日期: 2023-09-27 18:16:12
我修改了这个Regex,允许使用下划线、连字符、字母和数字。我正在尝试进一步修改它,使其具有以下属性:
- 只允许数字、字母
- 允许下划线或连字符位于第一个字符和最后一个字符之间
- 不能以下划线或连字符开头(仅在第一个字符和最后一个字符之间(
以下是我现在拥有的:
^[a-zA-Z0-9_-]*$
试试这个:
^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$
或者这样,只需确保字符串不会以连字符或下划线开头:
^[a-zA-Z0-9][a-zA-Z0-9_-]*$
^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9_-]*[a-zA-Z0-9])$
三种可能性中的任意一种:
[a-zA-Z0-9]
[a-zA-Z0-9][a-zA-Z0-9]
[a-zA-Z0-9][a-zA-Z0-9_-]*[a-zA-Z0-9]