Javascript 搜索字符串中包含通配符的正则表达式

Javascript 搜索字符串中包含通配符的正则表达式,javascript,regex,Javascript,Regex,我想要一个字符串的正则表达式 此字符串可以包含*和?在里面。但应至少包含3个字母数字字符。 所以 这应该做到: ^[*?]?([0-9a-z][*?]?){3,}$ 说明: ^匹配字符串的开头 [*?]? 匹配可选*或? …{3,}组必须至少出现3次 [0-9a-z][*?]?匹配字母数字字符后跟可选*或? $匹配字符串的结尾 连续*和?它们不匹配 更新:忘了提到它,但我想到了:使用i修饰符使匹配不区分大小写/../i.这应该可以做到: ^[*?]?([0-9a-z][*?]?){3,}$

我想要一个字符串的正则表达式 此字符串可以包含*和?在里面。但应至少包含3个字母数字字符。 所以

这应该做到:

^[*?]?([0-9a-z][*?]?){3,}$
说明:

^匹配字符串的开头 [*?]? 匹配可选*或? …{3,}组必须至少出现3次 [0-9a-z][*?]?匹配字母数字字符后跟可选*或? $匹配字符串的结尾 连续*和?它们不匹配

更新:忘了提到它,但我想到了:使用i修饰符使匹配不区分大小写/../i.

这应该可以做到:

^[*?]?([0-9a-z][*?]?){3,}$
说明:

^匹配字符串的开头 [*?]? 匹配可选*或? …{3,}组必须至少出现3次 [0-9a-z][*?]?匹配字母数字字符后跟可选*或? $匹配字符串的结尾 连续*和?它们不匹配

更新:忘了提到它,但我想到了:使用i修饰符使匹配不区分大小写/../i.

,因为我猜到了?表示任意一个字符和*任意数量的字符,是否要禁止连续*,但不允许连续?那么那个文件呢。???将是有效的,表示文件。后跟三个字符,例如file.txt,并允许除[A-Za-z\d*?]之外的其他内容:

假设该文件也是有效的,因为这个组合至少意味着3个字符。

因为我猜是这样的?表示任意一个字符和*任意数量的字符,是否要禁止连续*,但不允许连续?那么那个文件呢。???将是有效的,表示文件。后跟三个字符,例如file.txt,并允许除[A-Za-z\d*?]之外的其他内容:


假设该文件也是有效的,因为这个组合意味着至少3个字符。

可以使用正则表达式并在javascript中实现它

var searchin = item.toLowerCase();
var str = "*abc*";
str = str.replace(/[*]/g, ".*").toLowerCase().trim();
return new RegExp("^"+ str + "$").test(searchin);

可以使用正则表达式并在javascript中实现它

var searchin = item.toLowerCase();
var str = "*abc*";
str = str.replace(/[*]/g, ".*").toLowerCase().trim();
return new RegExp("^"+ str + "$").test(searchin);

那么您想要正则表达式作为正则表达式还是您所描述的?因为您最后的注释“*aaa无效,因为它不是有效的正则表达式”与“*abc有效”。我的意思是,*aaa有效,而**aaa2连续astrixs无效,因为我们甚至不在正则表达式中写入此类字符串。那么,*abc*如何是有效的正则表达式,那么,你想要正则表达式作为正则表达式还是你所描述的?因为你最后的评论“*aaa无效,因为它不是一个有效的正则表达式”与“*abc有效”。我的意思是,*aaa有效,而**aaa2连续Astrix无效,因为我们甚至没有在正则表达式中编写这种字符串。那么,*abc*如何是一个有效的正则表达式呢?@polishchuk:据我所知,连续通配符无效。这就是我想要的。这个正则表达式对我有用。我不知道为什么这个问题是否定的,可能是因为我没能正确地解释它。感谢您对它的理解。@Nits:将输入命名为正则表达式可能是错误的。这更像是你在标题中写的,占位符。但无论如何,不客气:@polishchuk:据我所知,连续的通配符是无效的。这就是我想要的。这个正则表达式对我有用。我不知道为什么这个问题是否定的,可能是因为我没能正确地解释它。感谢您对它的理解。@Nits:将输入命名为正则表达式可能是错误的。这更像是你在标题中写的,占位符。但无论如何,欢迎你: