Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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
Javascript regext不工作_Javascript_Regex - Fatal编程技术网

Javascript regext不工作

Javascript regext不工作,javascript,regex,Javascript,Regex,我有一个包含如下内容的网站。我想获得activategoldodgbrm App Namespace</span></div><div class="fsm fcb">activategoldodgbrm</div> App namespaceActivateGoldGBRM 我尝试了下面的代码,但它说匹配不起作用 var pattern = /App Namespace<\/span><\/div><div cl

我有一个包含如下内容的网站。我想获得activategoldodgbrm

App Namespace</span></div><div class="fsm fcb">activategoldodgbrm</div>
App namespaceActivateGoldGBRM
我尝试了下面的代码,但它说匹配不起作用

var pattern = /App Namespace<\/span><\/div><div class="fsm fcb">(.*?)<\/div>/gm;
var match;
while (match = pattern.exec(src)) { 

alert(match[1]);

}
var模式=/App名称空间(.*)/gm;
var匹配;
而(match=pattern.exec(src)){
警报(匹配[1]);
}

注意:src包含我的页面源

您尚未指定任何匹配项

var a;
if(a==1){...}
alert(a); // a is null
所以试试这个

var pattern = /App Namespace<\/span><\/div><div class="fsm fcb">(.*?)<\/div>/gm;
var match;
while (match = pattern.exec(src)) { // using "=" instead of "=="

alert(match[1]);

}
var模式=/App名称空间(.*)/gm;
var匹配;
而(match=pattern.exec(src)){//使用“=”而不是“=”
警报(匹配[1]);
}

请从关于==和=运算符的答案中抽象出来,这是一些误解。首先,我认为你不需要这么复杂的正则表达式。其次,你不需要运行循环。选中此项:

var src = 'App Namespace</span></div><div class="fsm fcb">activategoldodgbrm</div>';
alert(/class="fsm fcb">(.+?)</gm.exec(src)[1]);
var src='App namespaceActivateGoldGBRM';

警报(/class=“fsm fcb”>(.+?)我认为您只是误解了
m
修饰符。它确实给您提供了在几行上匹配某些内容的机会,但您必须处理新行(
\r\n
\n

考虑这个例子:

"</span>\n</div>".match(/.*/m);
(包括许多新线)


作为旁注,点
不会捕捉新行字符。

在您的src中没有换行符?使用DOM选择器查找该字符不是更好吗?他是根据@user125697之前的回答这样做的这起作用的
adfasdgadg asdfasdg asdf App Namespace abd App Namespace 1212 var pattern=/App Namespace(.*)/gm;var match;while(match=pattern.exec(document.body.innerHTML)){alert(match[1]);}
您只是为您的src举了一个最具体的例子。我想这在大多数情况下都不起作用。不起作用,在网站中,有一个或多个,所以我需要整个应用程序名称空间的正则表达式,所以它不是字符串,而是DOM节点树。您肯定应该使用节点遍历。src是包含应用程序名称空间ActivateGol的页面源dodgbrm,您的模式不起作用。好吧,我要一个JSFIDLE。因为当我们没有足够的数据时,我们可能无法修复这个问题。
"</span>\n</div>".match(/(.|\r?\n)*/m);
var pattern = /App Namespace(?:\r?\n)*<\/span>(?:\r?\n)*<\/div>(?:\r?\n)*<div class="fsm fcb">(?:\r?\n)*(.*?)(?:\r?\n)*<\/div>/gm;