首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于preg_replace的Php正则表达式,用于删除特定文本

用于preg_replace的Php正则表达式,用于删除特定文本
EN

Stack Overflow用户
提问于 2012-10-29 01:22:05
回答 2查看 246关注 0票数 0

我正在尝试从我的JS函数数组中删除一个JS函数,但是我找不到正确的regExp。

这是我想要删除的文本(函数):

代码语言:javascript
复制
window.addEvent('domready', function() {

  SqueezeBox.initialize({});
  SqueezeBox.assign($$('a.modal'), {
    parse: 'rel'
  });
});

我写了这段代码来删除它:

代码语言:javascript
复制
<?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,所以我迷路了,不知道在模式中的哪里寻找错误。

EN

回答 2

Stack Overflow用户

发布于 2012-10-29 01:26:43

正则表达式不太适合解决这类问题。我建议从php中输出某种类型的flag变量,并将其用作js中的条件,如下所示:

代码语言:javascript
复制
window.addEvent('domready', function() {
if(flag){
  SqueezeBox.initialize({});
  SqueezeBox.assign($$('a.modal'), {
    parse: 'rel'
  });
}
});

然后你可以根据你的逻辑在你的php中输出var flag=true或者var flag = false

票数 0
EN

Stack Overflow用户

发布于 2012-10-29 03:19:10

我终于成功了。感谢大家的帮助!

这是为我工作的最终代码。

代码语言:javascript
复制
<?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']);
      }
  } 
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13111162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档