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

标签 javascript arrays regex loops

如何循环遍历字符串并将其值添加到 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/

相关文章:

python - 如何将 2D numpy 数组的 2D numpy 数组重构为 4D float 组?

java -\s+ 不匹配所有空格?

regex - 如何在 Elasticsearch 中的搜索查询中查找实体?

javascript - 如何使用下划线循环和数组

c - 指向数组的指针与数组名称有何不同?

javascript - 即使短语确实存在于数组中,正则表达式搜索也会返回 -1

javascript - 格式化字符串值,如谷歌图表中的日期

javascript - 使用 Javascript 修改 CSS 类

javascript - 如何更改 Sencha Touch 中按钮的尺寸

javascript - 了解用于网页的 google places api