我需要制作一个匹配模式的正则表达式:
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,data2
或data1
。
答案 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 $
- 字符串结束。