Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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,我希望使用正则表达式中的数字查找并运行一个循环,使用第一个数字作为起点,最后一个数字作为终点,并仅使用javascript核心对象、方法或函数编写一些文本。 假设我有一个字符串数组,其形式为''','',依此类推。使用此数组,我想编写如下内容: 预期产出: rid"4"/<disp-formula id="deqn4-9"> rid"5"/<disp-formula id="deqn4-9"> rid"6"/<disp-formula id="deqn4-9">

我希望使用正则表达式中的数字查找并运行一个循环,使用第一个数字作为起点,最后一个数字作为终点,并仅使用javascript核心对象、方法或函数编写一些文本。 假设我有一个字符串数组,其形式为
''','',依此类推。
使用此数组,我想编写如下内容: 预期产出:

rid"4"/<disp-formula id="deqn4-9">
rid"5"/<disp-formula id="deqn4-9">
rid"6"/<disp-formula id="deqn4-9">
rid"7"/<disp-formula id="deqn4-9">
rid"8"/<disp-formula id="deqn4-9">
rid"9"/<disp-formula id="deqn4-9">
rid"15"/<disp-formula id="deqn15-17">
rid"16"/<disp-formula id="deqn15-17">
rid"17"/<disp-formula id="deqn15-17">
rid“4”/
摆脱“5”/
摆脱“6”/
摆脱“7”/
摆脱“8”/
摆脱“9”/
摆脱“15”/
摆脱“16”/
摆脱“17”/
基本上,它从数组中获取数字范围,并使用该范围内的每个数字,然后以上述方式写入。 我尝试了以下代码:

var myString = ['<disp-formula id="deqn4-9">', '<disp-formula id="deqn15-17">'];
            var myRegexp = /(\d+)-(\d+)/g;
            my_arr = myRegexp.exec(myString);
            while (my_arr != null) {
                var a1 = my_arr[0];
                var xs = a1.split("-");
                var new1=xs[0];
                var new2=xs[1];
                for (var i=new1; i<=new2; i++){
                    console.log('rid"'+i+'"/'+myString[0]);
                }
                var a2 = my_arr[1];
                var ys = a2.split("-");
                var _new1=xs[0];
                var _new2=xs[1];
                for (var j=_new1; j<=_new2; j++){
                    console.log('rid"'+j+'"/'+myString[1]);
                }
                my_arr = myRegexp.exec(myString);
            }
var myString=['','';
var myRegexp=/(\d+)-(\d+)/g;
myu arr=myRegexp.exec(myString);
while(my_arr!=null){
var a1=我的arr[0];
var xs=a1.拆分(“-”);
var new1=xs[0];
var new2=xs[1];

对于(var i=new1;i我修改了您的代码以便工作

var myString=['','','','';
var myRegexp=/(\d+)-(\d+)/g;
myu arr=myRegexp.exec(myString);
var-idx=0;
while(my_arr!=null){
var a1=我的arr[0];
var xs=a1.拆分(“-”);
var new1=parseInt(xs[0]);
var new2=parseInt(xs[1]);

对于(var i=new1;i预期的输出是什么?@marvel308预期的输出是有问题的第一个代码块。我已经修改了这个问题。谢谢,最后一件事,我如何使用document.write逐行而不是console.log来写这些找到的项?当数组中有字符串时,这不起作用,例如
你说的是什么意思rray like?如果
var myString=['','','','',];
那么结果就不会显示
rid“99”/rid“100”/rid“999”/rid“1000”/rid“1001”/
rid"4"/<disp-formula id="deqn4-9">
rid"5"/<disp-formula id="deqn4-9">
rid"6"/<disp-formula id="deqn4-9">
rid"7"/<disp-formula id="deqn4-9">
rid"8"/<disp-formula id="deqn4-9">
rid"9"/<disp-formula id="deqn4-9">
rid"4"/<disp-formula id="deqn15-17">
rid"5"/<disp-formula id="deqn15-17">
rid"6"/<disp-formula id="deqn15-17">
rid"7"/<disp-formula id="deqn15-17">
rid"8"/<disp-formula id="deqn15-17">
rid"9"/<disp-formula id="deqn15-17">
rid"15"/<disp-formula id="deqn4-9">
rid"16"/<disp-formula id="deqn4-9">
rid"17"/<disp-formula id="deqn4-9">
rid"15"/<disp-formula id="deqn15-17">
rid"16"/<disp-formula id="deqn15-17">
rid"17"/<disp-formula id="deqn15-17">