繁体   English   中英

JavaScript中的正则表达式以匹配通配符

[英]Regular expression in JavaScript to match wildcard

我正在尝试使用JavaScript中的正则表达式来验证用户输入。 有效输入是至少两个带有*符号的字符。 换句话说,有效格式为

< '*' or nothing><at least two characters>< '*' or nothing>

所以有效输入是

Mu*
*pa
*pa*

无效的输入是

*e*
*e*t
*e*t*
pa**

我正在尝试遵循表情,但无法正常工作。

^{\*}?[A-Za-z]{\*}?$

定义不清楚,但是让我们假设一个有效的字符串必须具有一个初始或最终*字符(即,一个根本没有*的字符串是无效的)。 是否需要最后一个*取决于是否存在一个初始* 我怀疑(尽管我尚未证明)这意味着您的有效字符串集无法用常规语言描述。

相反,你的语言可以描述为两个普通汉语语言的结合:一是其字符串结束(和可选的开头)用一* ,并用一个字符串,其开始(以及可选的结束) *

/^\*?\w{2,}\*$|^\*\w{2,}\*?$/

在这里,我们接受

  • 至少两个字母的字符串,带有必需的最终* (和可选的前导* )或
  • 至少两个字母的字符串,带有必需的前导* (和可选的final * )。

调整: ^\\*?\\w{2,}\\*?$应该可以解决问题。
糟糕:刚刚注意到@NiettheDarkAbsol注释中的“提示”-基本上提供了相同的解决方案。
但是,由于有效序列的所有示例都至少带有一个星号,因此我们可能都错了。 不过,在“正式”说明中没有明确指出…

这不只是这个吗?

/^\\*?[a-zA-Z]{2,}\\*?$/

http://regex101.com/r/gT3nY4/1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM