3

我有这个正则表达式,我修改为允许下划线、连字符、字母和数字。我正在尝试进一步修改它,使其具有以下属性:

  1. 只允许数字、字母
  2. 允许在第一个字符和最后一个字符之间的任何位置使用下划线或连字符
  3. 不能下划线连字符 开头(仅在第一个和最后一个字符之间)。

这是我现在拥有的:

^[a-zA-Z0-9_-]*$
4

2 回答 2

9

尝试这个:

^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$

或者这样,这将简单地确保字符串不以连字符或下划线开头:

^[a-zA-Z0-9][a-zA-Z0-9_-]*$
于 2013-05-29T22:30:33.787 回答
2
^([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]
于 2013-05-29T22:29:54.093 回答