0

我是 JavaScript 正则表达式的新手。目前我正在尝试在可能包含数字的字符串上创建一个正则表达式。

场景如下:<

字符串可以包含*之前或之后或两者之一,但不能在中间。

字符串长度最少为 2 个字符,最多为 12 个字符(不包括*)。

输入字符串示例:

AB1542378522
AC6546457869
OA6546457869

其他有效的字符串是:

*154*
*C6*
AB*
AB154237*
*2378522
*C654645
*645
*AB*
*AC6546457869*
OA*

无效的字符串:

*15*4
*15*4*
*A*B15*42*37*

*支持通配符,不允许输入其他特殊字符。例如在上面的输入字符串AB中,前两个字符是有效的,但不是AC, , ...那么它将跟随最多 10 位数字。OAAAAXOS

我无法创建涵盖上述用例的正则表达式。if else 分支使我的代码筋疲力尽。如果我找到任何答案,我会在评论中发布。如有任何混淆,请发表评论。

4

1 回答 1

4

尝试使用这种模式:

/^\*?(?=[^*]{2})[A-Z]{0,2}[0-9]{0,10}\*?$/

图案解释:

^           begining of the string
\*?         optional * 
(?=[^*]{2}) check if at least 2 characters that are not * follows
[A-Z]{0,2}  between zero and 2 letters
[0-9]{0,10} between zero and 10 digits
\*?         optional *
$           end of the string
于 2013-08-23T19:25:50.287 回答