正则表达式\ S *导致“JavaScript堆内存不足”

时间:2018-02-03 06:32:08

标签: javascript regex

我正在尝试选择所有非空白字符。但正则表达式\S*[^\s]*因任何字符串的“JavaScript堆内存不足”错误而失败。

我尝试使用node并直接在浏览器控制台上。然而,当我尝试使用在线正则表达式测试程序时,它运行良好。

var validAttrStrRegxp = new RegExp("\\S*", "g");
getAllMatches("any string",validAttrStrRegxp);

var getAllMatches = function(string, regex) {
  var matches = [];
  var match = regex.exec(string);
  while (match) {
    var allmatches = [];
    for (var index = 0; index < match.length; index++) {
        allmatches.push(match[index]);
    }
    matches.push(allmatches);
    match = regex.exec(string);
  }
  return matches;
};

1 个答案:

答案 0 :(得分:1)

我明白了。由于*表示0或许多。我指定的RE也意味着匹配空模式。因此问题不是由\\S+造成的。