拆分PHP和HTML标记,并在JavaScript中将其加上边框

拆分PHP和HTML标记,并在JavaScript中将其加上边框,javascript,php,html,regex,Javascript,Php,Html,Regex,我正在为文本编辑器开发JavaScript扩展。现在我正在研究代码格式化程序。但我发现一件事我解决不了。如果您像这样同时使用PHP和HTML: <?php Some php Some php Some php ?> <body> <head></head> <anotherTag></anotherTag> </body> 我在Java

我正在为文本编辑器开发JavaScript扩展。现在我正在研究代码格式化程序。但我发现一件事我解决不了。如果您像这样同时使用PHP和HTML:

<?php
    Some php
    Some php
    Some php
    ?>
    <body>
      <head></head>
      <anotherTag></anotherTag>
    </body>


我在
Javascript
中有类似字符串的代码。现在,我必须将PHP和HTML分开,以单独的格式使用。在它之后,我必须再次为它加上边框,以便将其返回给编辑器。有什么想法吗,比如正则表达式之类的?:)谢谢。

你可以用很多方法来做。一般的解决方案是在字符串中搜索开始/结束标记,然后将该部分字符串切片,并将其放入您喜欢使用的变量或数组中。然后简单地合并字符串

这是一个JavaScript方法列表,其中包含一些示例,可以帮助您完成以下任务:

通过这种方式,您可以捕获HTML和PHP代码,但只有当只有一条PHP语句时,它才能正确捕获:

~
(.*?) #catches HTML in the start
(?:<[?]php) #looks for opening php tag but doesn't capture it
(.*?) #catches all php code
(?:[?]>) #looks for php ending tag but doesn't capture it
(.*) #catches HTML afterwards
~xs
~
(.*)#在开始时捕获HTML

(?:我只想让您知道,虽然在javascript中解析字符串并捕获部分字符串听起来是目前最好的解决方案,但在HTML上使用正则表达式是一种不好的做法: