Javascript模式验证

时间:2014-10-09 13:28:21

标签: javascript regex validation

请有人帮助我使用正则表达式来验证此模式的字符串

aaa [bbb]

我想以上面表达的格式输入。 aaa& bbb可以是一个或多个单词的任意组合,也可以包含特殊字符。 bbb必须包含在方括号([...])中。完整字符串可以有前导或尾随空格。

我试过这个:

var re=/\w{0,} \[*\w{0,}\]/

但它在测试字符串上返回false,如:

re.test("onc>*!llklk[dd<dfd]")

3 个答案:

答案 0 :(得分:2)

您的正则表达式明确要求存在空格。我们可以使用Regexper

来形象化

Example

这在"onc>*!llklk[dd<dfd]"上返回false,因为没有空格字符。

要解决您的问题,请使用具有空格字符的测试字符串,或将正则表达式更改为不需要此字符:

var re = /\w{0,}\[*\w{0,}\]/;
re.test("aaa [bbb]");
> true

re.test("onc>*!llklk[dd<dfd]");
> true

您可能想要重新考虑您的正则表达式,因为就目前而言,单个"]"字符将通过测试:

re.test("]");
> true

答案 1 :(得分:2)

\S+\s*\[\S+?\]

如果您想允许特殊字符,也可以试试这个。

http://regex101.com/r/yA1jY6/3

答案 2 :(得分:1)

首先,为了便于阅读,您可以将{0,}替换为*,因为它是相同的。 接下来,\w>*等某些符号不匹配,您可以使用.来匹配任何符号。 然后,就像另一个答案所说,你期望两组之间有一个空格(aaa和[bbb]),所以你的例子不匹配。

我认为这个正则表达式是一个很好的起点(取决于你的其他要求)。

/.+\[.+\]/

Try it here