如何为" data1,data2"?制作正则表达式?

时间:2017-06-06 09:28:36

标签: javascript regex

我需要制作一个匹配模式的正则表达式:

data1,data2
data1

但不是data1&data2或除,之外的任何其他特殊字符。 我尝试了很少像flag_regex = new RegExp("[a-zA-Z0-9].*,.*[a-zA-Z0-9]*");

1和2是两个不同的字符串,这不是CSV

我的正则表达式只匹配第一个模式,而不是第二个模式。

我在JavaScript中这样做。

我正在尝试这样做。

var flag_regex = new RegExp("[a-zA-Z0-9].*,.*[a-zA-Z0-9]*");
if(!flag_regex.test(string))
{
    log.error("wrong query format");
    return res.status(404).send({"message":"wrong query format"});
}

它应该接受字符串data1,data2data1

1 个答案:

答案 0 :(得分:1)

将正则表达式更改为

var flag_regex = /^[a-zA-Z0-9]+(?:,[a-zA-Z0-9]+)*$/;

如果您只允许使用1个逗号,请将最后*(零次或多次重复)替换为?(一次或零次重复)。

请参阅regex demo

<强>详情:

  • ^ - 字符串开头
  • [a-zA-Z0-9]+ - 1个或更多的alphanum
  • (?:,[a-zA-Z0-9]+)* - 零个或多个序列:
    • , - 逗号
    • [a-zA-Z0-9]+ - 1个或更多的alphanum
  • $ - 字符串结束。