Javascript 如何在string.match中添加循环值?

Javascript 如何在string.match中添加循环值?,javascript,arrays,regex,loops,Javascript,Arrays,Regex,Loops,如何循环字符串并在match方法中的regex中添加其值。我越来越空了。 使用/'str[i]'/g进行了尝试,它还提供null var str = "helloWorld"; var regResult; for (var i = 0; i < str.length; i++) { regResult = str.match(/str[i]/g); //gives null }; var str=“helloWorld”; var回归结果; 对于(变量i=0;inewregexp

如何循环字符串并在match方法中的regex中添加其值。我越来越空了。 使用
/'str[i]'/g
进行了尝试,它还提供null

var str = "helloWorld";
var regResult;

for (var i = 0; i < str.length; i++) {
  regResult = str.match(/str[i]/g); //gives null
};
var str=“helloWorld”;
var回归结果;
对于(变量i=0;i
现在,您的正则表达式正在匹配
str
,后跟范围
i
中的一个字符-一个
i
,这意味着它将匹配
stri
。要匹配变量
i
,请尝试以下操作:

var str = "helloWorld";
var regResult;

for (var i = 0; i < str.length; i++) {
  regResult = str.match(new RegExp('str' + i, 'g')); //gives null
};

此代码与上述代码的不同之处在于,它从
str
读取值
i
。例如,如果
i
为4且
str[4]=“h”
,则正则表达式将被构造为只将
str[4]
的值赋给
str.match
str.match(/h/g)

现在,正则表达式正在匹配
str
,后跟范围
i
中的一个字符-一个
i
,这意味着它将匹配
stri
。要匹配变量
i
,请尝试以下操作:

var str = "helloWorld";
var regResult;

for (var i = 0; i < str.length; i++) {
  regResult = str.match(new RegExp('str' + i, 'g')); //gives null
};

此代码与上述代码的不同之处在于,它从
str
读取值
i
。例如,如果
i
为4且
str[4]=“h”
,则正则表达式将被构造为只需将
str[4]
的值赋给
str.match
str.match(/h/g)

可能您只需要一点修改

var str = "helloWorld";
var regResult;

for (var i = 0; i < str.length; i++) {
    regResult = str.match(new RegExp(str[i], 'g'));
    console.log(regResult)
};
var str=“helloWorld”;
var回归结果;
对于(变量i=0;i
您可能只需要一点修复

var str = "helloWorld";
var regResult;

for (var i = 0; i < str.length; i++) {
    regResult = str.match(new RegExp(str[i], 'g'));
    console.log(regResult)
};
var str=“helloWorld”;
var回归结果;
对于(变量i=0;i
//static RegExp->/str[i]/g正好等于“str[i]”
//动态RegExp->newregexp(str[i],“g”)是str[i]h,e,l,l。。。
var str=“helloWorld”;
var回归结果;
对于(变量i=0;i
//static RegExp->/str[i]/g正好等于“str[i]”
//动态RegExp->newregexp(str[i],“g”)是str[i]h,e,l,l。。。
var str=“helloWorld”;
var回归结果;
对于(变量i=0;i
您需要使用,以便可以使用迭代的
字符串动态创建正则表达式:

str.match(new RegExp(str[i],'g'))
但是,如果您试图为
字符串中的每个字母获取匹配的
数组
,则需要
推送
您的
重新结果中的
匹配
数组
,而不只是在每次迭代中都过大其值:

regResult.push(str.match(new RegExp(str[i], 'g'))); //gives null
演示:

var str=“helloWorld”;
var Regressult=[];
对于(变量i=0;i控制台日志(regResult)您需要使用,这样您就可以使用迭代的
字符串动态创建正则表达式:

str.match(new RegExp(str[i],'g'))
但是,如果您试图为
字符串中的每个字母获取匹配的
数组
,则需要
推送
您的
重新结果中的
匹配
数组
,而不只是在每次迭代中都过大其值:

regResult.push(str.match(new RegExp(str[i], 'g'))); //gives null
演示:

var str=“helloWorld”;
var Regressult=[];
对于(变量i=0;i控制台日志(regResult)
我已更新了我的答案,以反映对问题@Dekey的更改,但这将仅在
regResult
数组中插入
['d']
,从上一次迭代开始,它需要调整。还有什么是
ars
?我不确定
ars
是从@cŝdk哪里来的。我可能(又)累的时候正在打字。现在已经修好了等等,别担心
ars
是问题中变量在编辑之前的原始名称。我一定错过了名称更改。我已更新了我的答案,以反映对问题@Dekek的更改,但这将仅在
regResult
数组中插入
['d']
,从上一次迭代开始,它需要调整。还有什么是
ars
?我不确定
ars
是从@cŝdk哪里来的。我可能(又)累的时候正在打字。现在已经修好了等等,别担心
ars
是问题中变量在编辑之前的原始名称。我一定错过了改名。