Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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,例如,我们有以下正则表达式: /^[a-z]{1,10}-[0-9]{10}$/ 此正则表达式允许我们最多输入21个字符 有没有一种简单的方法可以获取JavaScript中允许的最大字符数?不,你不能 如果使用“?”或“+”或“*”,则无法猜出匹配的字符数。什么数字,输入值?更多问题,可能是正则表达式中的正则表达式。首先,你认为简单的表达式是a+?那(?:a{2}){4}呢?我想你需要一个语法分析器,答案是否定的!要获得正则表达式允许的字符数,没有简单的方法,最简单的方法是构造一个循环,以不断

例如,我们有以下正则表达式:

/^[a-z]{1,10}-[0-9]{10}$/
此正则表达式允许我们最多输入21个字符

有没有一种简单的方法可以获取JavaScript中允许的最大字符数?

不,你不能


如果使用“?”或“+”或“*”,则无法猜出匹配的字符数。

什么数字,输入值?更多问题,可能是正则表达式中的正则表达式。首先,你认为简单的表达式是
a+
?那
(?:a{2}){4}
呢?我想你需要一个语法分析器,答案是否定的!要获得正则表达式允许的字符数,没有简单的方法,最简单的方法是构造一个循环,以不断增加的字符数测试正则表达式,直到它失败。@Bergi-没有想到,你必须知道正则表达式在长度为1时会失败,然后你就完蛋了,因为你必须用你的眼睛阅读正则表达式或解析它才能知道这一点,所以除非你知道正则表达式的功能,否则自动化是不可行的,如果你能阅读它并看到它的功能,那么为什么你需要测试它呢?他想要的是可以匹配的最大字符数。所以
max('a?')是1
max('a+')是无限的
max('a*)也是无限的
你的例子很简单。幸运的是,我们编写了一个函数,当它不是无限大时,它将计算最大字符数