如何循环遍历字符串并将其值添加到 match 方法中的正则表达式中。我快要归零了
尝试使用 /'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
};
最佳答案
现在,您的正则表达式正在匹配 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
};
这里我们创建一个正则表达式,其模式包含变量i
的当前值。例如,如果 i
为 4,则将构造正则表达式,就好像您只是将 /str4/g
赋予 str.match
.
编辑
为了反射(reflect)对问题所做的编辑,我提出的新解决方案如下:
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)
。
关于javascript - 如何在 string.match 中添加循环值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52369714/