已更新
我需要你的帮助来打败正则表达式! 我正在以这样的 AJAX 响应形式获取外部 CSS 文件:
$.when($.get("style.css")).done(function(response) {
var myCSS = response;
var patt = new RegExp("#mydiv(.*?)}","g");
var match = myCSS.match(patt);
alert(match);
}
我在这里想要实现的是,我想要获取从 #mydiv 到最后一个右括号 的所有内容,但出于某种原因 alert( match) 返回给我 null。
最烦人的事情是当我将模式更改为:
var patt = new RegExp("#mydiv(.*?){","g"); // <-- Changed } to {
alert(match) 返回应该返回的内容 --> #mydiv .mylink {
或者当我用像这样的简单字符串形式表示相同的 CSS 时:
$.when($.get("style.css")).done(function(response) {
var myCSS = "The same style.css but copy-pasted here";
var patt = new RegExp("#mydiv(.*?)}","g");
var match = myCSS.match(patt);
alert(match);
}
按预期使用我的初始模式。有什么想法我在这里错过了什么吗?
最佳答案
是正则表达式中的保留字符,您必须使用
\
将其转义。我认为您要使用的正则表达式是 "#mydiv(.*)\}"
或 "#mydiv(.*)\\}"
如果 \
本身必须转义。
关于javascript - RegEx 模式不适用于 AJAX 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14679136/