JavaScript 正则表达式查找 PHP 标签

标签 javascript regex

我在谷歌上搜索了一个正则表达式来获取并阅读了一些教程,但我似乎无法获得可靠的正则表达式来执行此操作。

我需要做的是编写一个 JavaScript 正则表达式来匹配字符串中的 PHP 标签。

我继承了一个大型 php 项目,其中混合 html 和 php 的 View 可读性不是很好。因此,我正在做的是编写一个供我个人使用的 IDE 扩展,以去除混合在 php View 中的 php,以便在其上运行 HTML 缩进脚本,而不会混淆 HTML 缩进脚本。然后,在缩进脚本完成后,我返回并再次重新插入 php。

到目前为止我所拥有的是这个(我从寻找括号 [] 的正则表达式转换它,我知道它不会匹配所有内容,但它让我足以充实我的 IDE 扩展):

var php_tag_pattern = /<\?[^<>]*\?>/;

现在,由于显而易见的原因,它与这样的代码不匹配:

<?=$common->format_number($acct_info['number'])?>

或者这个:

<?
$wifi = $wifi_lib->wifi_radius($v['radiusgroupname']);
if (!empty($wifi)) :?>

过去几个小时我一直在搞这个,所以我想我最终会寻求帮助来看看我错过了什么。

谢谢!

最佳答案

要匹配多行 php 文本,您需要在 Javascript 中实现 DOTALL。不幸的是,Javascript 没有 s 标志,但有一个解决方法。试试这个代码:

var php_tag_pattern = /<\?[=|php]?[\s\S]*?\?>/;

[\s\S] 将确保匹配多行中的 php 文本,包括换行符。

关于JavaScript 正则表达式查找 PHP 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6484995/

相关文章:

regex - 如何查看 RegexOptions 枚举中可用的选项?

Jquery 邮政信箱验证

javascript - 在 'send' 上执行 'RTCDataChannel' 失败 : RTCDataChannel. readyState 不是 'open'

javascript - 限制输入框中的字数

javascript - 使用修改后的键/值重新保存 PFUsers

python - 为什么我的正则表达式不能在 Python 中工作?

regex - 使用 AND 使用 Sublime 3 在多个文件中搜索多个字符串

javascript - yacal.js 下一个/后退按钮删除 jquery 事件监听器

javascript - 如果单击两次,元素将失去悬停属性

javascript - 正则表达式检测连续重复的数字