正则表达式\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不,看。是的,这是正确的。你可以把它贴出来作为答案。