JavaScript中的Regex可选字符集
我想用以下条件验证名称数据文件JavaScript中的Regex可选字符集,javascript,regex,Javascript,Regex,我想用以下条件验证名称数据文件 名称包含数字0到9,而不是所有数字 名称可以包含连字符-,前提是它不是第一个或最后一个 名称字符 名称必须包含2个字符,其余字符是可选的 所以我尝试了下面的正则表达式 const regExp = /^[a-zA-Z0-9]+[a-zA-Z_-]+[a-zA-Z0-9]$/; 我需要至少两个字符,其余字符在regExp中是可选的 除了这个代码> [AZ-ZO-9] 之外,所有的工作都很好,最后,我想让这个可选的 < P>你可以考虑使用< /P> /^
- 名称包含数字0到9,而不是所有数字
- 名称可以包含连字符-,前提是它不是第一个或最后一个 名称字符
- 名称必须包含2个字符,其余字符是可选的
const regExp = /^[a-zA-Z0-9]+[a-zA-Z_-]+[a-zA-Z0-9]$/;
我需要至少两个字符,其余字符在regExp中是可选的
除了这个代码> [AZ-ZO-9] 之外,所有的工作都很好,最后,我想让这个可选的 < P>你可以考虑使用< /P>
/^(?=.{2})(?![^a-zA-Z]+$)[a-zA-Z0-9]+(?:[_-][a-zA-Z0-9]+)*$/
见
详细信息
-字符串的开头^
-至少两个字符(?=.{2})
-字符串不能没有ASCII字母(?![^a-zA-Z]+$)
-1+ASCII alnum字符[a-zA-Z0-9]+
-0个或多个(?:[-][a-zA-Z0-9]+)*
或\u
序列,后跟1+ASCII alnum字符-
-字符串结束$
你需要这个:
/^[a-zA-Z0-9][a-zA-Z-]*[a-zA-Z0-9]$/
这个“不能都是数字”的规定使得这个正则表达式很难理解。/^(?=.{2})(?!\d+$)[a-zA-Z0-9]+(?:[-][a-zA-Z0-9]+])*$/
是一个有效的名称吗?如果是,那么@WiktorStribiżew就有了解决方案。然后更好的解决方案是需要一个字母-/^(?=.{2})(?![^a-zA-Z]+$)[a-zA-Z0-9]+(?:[[u-][a-zA-Z0-9]+)*$/