[英]RegEx for single asterisk (*) and alphanumeric
我需要一个javascript正则表达式,它可以接受任何字母数字字符(如果有星号,则可以是任意数量的字符或0个字符),并且在字符串中的任何位置都可以有一个星号(但不需要星号)。
火柴
*
abc
*abc
abc*
a*bc
无效的比赛
**
*_abc
*abc*
abc**
**abc
我有
^([A-Za-z\d*]?)+$
但这匹配多个星号,我不确定如何只允许一个https://regex101.com/r/a1C9bf/1
您可以将此正则表达式与否定的超前使用:
/^(?!(?:.*\*){2})[A-Za-z\d*]+$/gm
如果输入中有多个*
,则负向超前(?!(?:.*\\*){2})
匹配失败。
您可以这样做:
^(?=.)[A-Za-z\d]*\*?[A-Za-z\d]*$
这将匹配至少一个字符长( (?=.)
),以零个或多个字母数字字符开头,包含可选*
并以零个或多个字母数字字符结尾的任何字符串。
您也可以将[A-Za-z\\d]
替换为[^\\W_]
,使其更短(但更难阅读):
^(?=.)[^\W_]*\*?[^\W_]*$
无需任何前瞻,您可以使用^([\\da-zA-Z]+|[\\da-zA-Z]*\\*[\\da-zA-Z]*)$
https:// regex101。 COM / R / xW2IvR / 2
您想要一种匹配是以下两种可能情况之一:
然后这是您的正则表达式:
^([a-zA-Z\d]*\*[a-zA-Z\d]*|[a-zA-Z\d]+)$
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.