React-Native:发布模式下的JavaScript正则表达式异常(无效组)

时间:2018-07-16 17:19:17

标签: javascript regex react-native

我编写了以下函数,以便为每个srcset元素解析img属性内的可用图像大小,并将其作为数组返回。 开启调试模式后,一切正常,但是一旦禁用调试模式,应用程序将崩溃并引发以下错误:

Error: invalid regular expression invalid group specifier name

export function srcsetParser(htmlString) {

  let result = [];
  let images = htmlString.match(/<img\s+[^>]*srcset="([^"]*)"[^>]*>/g); // Finding img tags inside html string

  images && images.forEach(image => {
    let srcsets = image.match(/(?<=srcset=").+?(?=\")/g); //Select srcset value

    var urls = srcsets[0].split(", ");
    urls.forEach(url => {
      let temp = url.split(" ");
      result.push(temp[0]);
    });
  });
  return result;
}

任何想法都知道正则表达式有什么问题,为什么只有在调试模式关闭的情况下才这样呢?

谢谢

1 个答案:

答案 0 :(得分:1)

更新

浏览器支持不是很好,但是JavaScript now allows lookbehinds。旧的答案留在下面。


JavaScript正则表达式不支持后向。您可以使用另一种方法:

  images && images.forEach(image => {
    let srcsets = image.match(/srcset="(.+?)(?=\")/); //Select srcset value

    var urls = srcsets[1].split(", ");
    urls.forEach(url => {
      let temp = url.split(" ");
      result.push(temp[0]);
    });
  });