Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用javascript编写这个正则表达式?_Javascript_Regex - Fatal编程技术网

如何用javascript编写这个正则表达式?

如何用javascript编写这个正则表达式?,javascript,regex,Javascript,Regex,我想从我拥有的字符串中提取数据,但我不知道如何使用regex进行提取。 字符串为: validate[required,maxSize[255],....] “…”意味着它可能是另一个数字和字母。 那么,我应该使用什么正则表达式来提取255值呢?(最大大小值) 根据字符串的不同,您可以非常懒惰,只需匹配/maxSize\[(\d+)\]/ > /maxSize\[(\d+)\]/.exec('validate[required,maxSize[255],foo]')[1] '255'

我想从我拥有的字符串中提取数据,但我不知道如何使用regex进行提取。
字符串为:

validate[required,maxSize[255],....]
“…”意味着它可能是另一个数字和字母。
那么,我应该使用什么正则表达式来提取255值呢?(最大大小值)

根据字符串的不同,您可以非常懒惰,只需匹配
/maxSize\[(\d+)\]/

> /maxSize\[(\d+)\]/.exec('validate[required,maxSize[255],foo]')[1]
'255'
如果您想确保它在
验证[…]
内部,那么它将变得非常困难,除非您安全地知道它只会发生一次,并且内部不会有额外的
[…]
块:

> /validate\[[^\]]*maxSize\[(\d+)\].*\]/.exec(
    'validate[required,maxSize[255],foo,bar]')[1]
'255'
如果上面提到的限制不可接受,您就不能用正则表达式来实现,因为正则表达式的功能不足以匹配正确嵌套的括号之类的内容。如果您试图解析完整的验证规则,请考虑使用适当的解析器。在这种情况下,我将首先通过搜索
validate[
来提取
validate[…]
部分,然后在计数
[
]时逐个进行字符处理
引用以查看第一个关闭的时间。然后,我将使用
作为分隔符在这些括号之间拆分字符串,然后使用我已有的解析器或正则表达式提取长度。由于您几乎可以重用解析器,我将使用该解析器;它甚至可以为wh提供结构良好的对象ole验证规则(即使是具有多个参数的规则)而不是一堆字符串/整数。

maxSize[(\d+)]这一条就足够了