Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式\S*原因“;“JavaScript内存不足”;_Javascript_Regex - Fatal编程技术网

正则表达式\S*原因“;“JavaScript内存不足”;

正则表达式\S*原因“;“JavaScript内存不足”;,javascript,regex,Javascript,Regex,我正在尝试选择所有非空白字符。但是正则表达式\S*或[^\S]*因任何字符串出现“JavaScript堆内存不足”错误而失败 我用node直接在浏览器控制台上进行了尝试。然而,当我用一个在线正则表达式测试仪进行测试时,它工作得很好 var validAttrStrRegxp = new RegExp("\\S*", "g"); getAllMatches("any string",validAttrStrRegxp); var getAllMatches = function(string,

我正在尝试选择所有非空白字符。但是正则表达式
\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;
};
var validAttrStrRegxp=new RegExp(“\\S*”,“g”);
getAllMatches(“任何字符串”,validAttrStrRegxp);
var getAllMatches=函数(字符串,正则表达式){
var匹配=[];
var match=regex.exec(字符串);
while(比赛){
var allmatches=[];
对于(var索引=0;索引
我知道原因了。As
*
表示0或多。指定的RE I还表示匹配空模式。因此,问题不是由
\\S+

引起的,请发布可编译的示例。不确定,但可能是因为JS将空字符串视为空白字符
/\S/.test(“”)//真的
这不是故意的无限循环吗?@user202729不,看。是的,这是正确的。你可以把它贴出来作为答案。