Javascript - 正则表达式检查用户是否写入正确的格式化输入

时间:2016-09-07 09:37:51

标签: javascript regex

在我的CLI中,用户可以指定他们想要使用的内容: 用户命令可能如下所示:

include=name1,name2,name3
category=name1,name2
category=name1

换句话说,命令总是由3部分组成:

  1. 命令名称:可以只是includecategory
  2. =:在每个命令中
  3. 他们想要使用的内容的名称或名称,按,
  4. 拆分

    我如何测试这个以使其始终为真,但对其他所有内容都是假的。

    我在正则表达式中非常糟糕,但我尝试过这样的事情:

    /\category|include=\w/.test(str);
    

    简单地测试,至少是最简单的替代方案category=name1,但没有成功。

    有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:3)

你是在正确的道路上。这是一个固定的正则表达式:

/^(category|include)=\w+(,\w+)*$/.test(str);

注意:

  • 替代零件周围的parens
  • +之后的\w,以便您可以拥有多个字符
  • 可选(,\w+)*
  • 字符串标记的开头和结尾(^$)以检查整个字符串

答案 1 :(得分:2)

您可以使用此正则表达式进行重新处理:

/^(category|include)=(\w+(?:,\w+)*)$/

RegEx Demo

\w+(?:,\w+)*)之后的值部分中的

=将允许一个或多个以逗号分隔的单词。