我在正则表达式中有条件,限制为8个字符,它应该接受数字,字母和?
,如果我们在字段中输入*
,则应该给出错误。
或者如果我们在输入字段中输入*
,则对于整个字段只应接受一个*
,除此之外。
例如:*
相当于wer?23w4
正则表达式是:
/[a-zA-Z0-9?]{8}/
答案 0 :(得分:3)
您可以使用交替运算符(|
)指定一个或多个条件。在你的情况下:
/\*|[a-zA-Z0-9?]{8}/
这意味着要匹配:
*
字符,没有别的?
组成的八个字符。注意,根据您在代码中的使用方式,您可能需要添加锚点^
和$
,以确保它针对整个字段进行测试:
/^(?:\*|[a-zA-Z0-9?]{8})$/
答案 1 :(得分:0)
试
/(\*|[a-zA-Z0-9\?]{8})/g
例如
"33asdsad".match( /(\*|[a-zA-Z0-9\?]{8})/g);
和
"*".match( /(\*|[a-zA-Z0-9\?]{8})/g)
和
"234234?d".match( /(\*|[a-zA-Z0-9\?]{8})/g)