我正在尝试使用JavaScript中的正则表达式验证用户输入。有效输入至少两个带*
符号的字符。换句话说,有效格式是
< '*' or nothing><at least two characters>< '*' or nothing>
有效输入是
Mu*
*pa
*pa*
无效输入
*e*
*e*t
*e*t*
pa**
我正在尝试跟随表达但不能正常工作。
^{\*}?[A-Za-z]{\*}?$
答案 0 :(得分:2)
定义不明确,但我们假设有效字符串必须具有初始或最终*
字符(即,完全没有*
的字符串无效)。是否需要最终*
取决于是否存在初始*
。我怀疑(虽然我没有证明)这意味着你的有效字符串集不能用常规语言来描述。
相反,您的语言可以被描述为两个常规语言的并集:一个字符串以*
结束(并且可选地开始),一个字符串以*
开始(并且可选地结束) }:
/^\*?\w{2,}\*$|^\*\w{2,}\*?$/
在这里,我们接受
*
(以及可选的前导*
)或*
(以及可选的最终*
)。答案 1 :(得分:1)
调整后:^\*?\w{2,}\*?$
应该做到这一点
哎呀:刚刚注意到了#34;提示&#34;在@NiettheDarkAbsol评论中 - 这基本上给出了相同的解决方案
但是,我们可能都错了,因为有效序列的所有示例都至少有一个星号。这在“正式”中并不明确。虽然描述......
答案 2 :(得分:1)