我正在尝试从我的JS函数数组中删除一个JS函数,但是我找不到正确的regExp。
这是我想要删除的文本(函数):
window.addEvent('domready', function() {
SqueezeBox.initialize({});
SqueezeBox.assign($$('a.modal'), {
parse: 'rel'
});
});我写了这段代码来删除它:
<?php if (isset($this->functions['text/javascript'])) {
$this->functions['text/javascript'] = preg_replace('%window\.addEvent\(\'domready\',\s*function\\(\\)\s*\\{SqueezeBox\\.initialize\\(\\{\\}\\);\s*SqueezeBox\\.assign\\(\\$\\$\\(\'a\\.modal\'\\), \\{parse: \'rel\'\\}\\);\\}\\);\s*%', '', $this->functions['text/javascript']);
if(empty($this->functions['text/javascript'])) {
unset($this->functions['text/javascript']);
}
} ?>我不太擅长regexp,所以我迷路了,不知道在模式中的哪里寻找错误。
发布于 2012-10-29 01:26:43
正则表达式不太适合解决这类问题。我建议从php中输出某种类型的flag变量,并将其用作js中的条件,如下所示:
window.addEvent('domready', function() {
if(flag){
SqueezeBox.initialize({});
SqueezeBox.assign($$('a.modal'), {
parse: 'rel'
});
}
});然后你可以根据你的逻辑在你的php中输出var flag=true或者var flag = false。
发布于 2012-10-29 03:19:10
我终于成功了。感谢大家的帮助!
这是为我工作的最终代码。
<?php
if (isset($this->functions['text/javascript'])) {
$this->functions['text/javascript'] = preg_replace('%window\.addEvent\(\'domready\',\s*function\(\)\s*{\s*SqueezeBox.initialize\(\{\}\)\;\s*SqueezeBox.assign\(\$\$\(\'a.modal\'\)\,\s*{\s*parse:\s*\'rel\'\s*}\);\s*}\);\s*%', '', $this->functions['text/javascript']);
if(empty($this->functions['text/javascript'])) {
unset($this->functions['text/javascript']);
}
}
?>https://stackoverflow.com/questions/13111162
复制相似问题