【发布时间】:2014-11-14 06:16:37
【问题描述】:
我正在尝试提出一个可以与 Javascript .test 一起使用的正则表达式,以确保我的系统只接受有效格式的查询字符串。
格式看起来像这样i=1&s1=122&s2=238&s3=167&s4=756&s5=13 它可以有无限数量的s#= 参数,所以可以比这个例子更长或更短。
在英文中,格式类似于i=1&s[1+0]=[any number > 0]&s[1+1]=[any number > 0]&s[1+2]=[any number > 0] 等等。
现在我拥有的正则表达式是/^([\w-]+(=[\w-]*)?(&[\w-]+(=[\w-]*)?)*)?$/ 它基于this answer. 中提供的代码它在拒绝某些类型的无效字符串方面做得很好,但仍然有很多漏洞。
如何改进这个正则表达式,使其更准确地拒绝无效数据?
【问题讨论】:
-
s[1+2]regex 将如何执行算术运算...它将如何检测数字的线性增加? -
如果不能,那也没关系。系统对键值对中的键不是特别挑剔。我只是指出格式以防万一。
标签: javascript regex query-string