Javascript 如何在string.match中添加循环值?
如何循环字符串并在match方法中的regex中添加其值。我越来越空了。 使用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
/'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
是问题中变量在编辑之前的原始名称。我一定错过了改名。