正则表达式仅适用于一个字符(*)或其他字母数字

时间:2016-02-26 05:43:34

标签: javascript regex

我在正则表达式中有条件,限制为8个字符,它应该接受数字,字母和?,如果我们在字段中输入*,则应该给出错误。

或者如果我们在输入字段中输入*,则对于整个字段只应接受一个*,除此之外。

例如:*相当于wer?23w4

正则表达式是:

/[a-zA-Z0-9?]{8}/

2 个答案:

答案 0 :(得分:3)

您可以使用交替运算符(|)指定一个或多个条件。在你的情况下:

/\*|[a-zA-Z0-9?]{8}/

这意味着要匹配:

  • 单个*字符,没有别的
  • 或者,正好是由小写,大写,数字或?组成的八个字符。

注意,根据您在代码中的使用方式,您可能需要添加锚点^$,以确保它针对整个字段进行测试:

/^(?:\*|[a-zA-Z0-9?]{8})$/

Regular expression visualization

Debuggex Demo

答案 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)
相关问题