【问题标题】:regular expression for tag in Jquery/javascriptJquery / javascript中标签的正则表达式
【发布时间】:2014-12-16 07:28:12
【问题描述】:

我需要找到一个正则表达式来替换我的 js 文件中的注释。我想要的是像这样转换所有行:

 //it's a commentaire

进入这个

 /* it's a commentaire */

因为我尝试优化我的文件,我认为有些问题来自于此。我使用php函数file_get_content,它在一行中创建一个字符串,所以所有的字符串都成为语法的注释原因。

【问题讨论】:

    标签: jquery regex


    【解决方案1】:
    \/\/([^\n]*)
    

    你可以试试这个。替换为/* $1 */。查看演示。

    http://regex101.com/r/dK1xR4/9

    【讨论】:

      【解决方案2】:

      您可以尝试下面的正则表达式来匹配以// 开头的字符串直到行尾。在多行模式下,点将匹配任何字符,但不匹配换行符。因此,您可以使用.* 匹配以下所有字符并将括号放在(.*) 周围会将匹配项变为captures

      \/\/(.*)
      

      将匹配的字符串替换为/* $1 */

      DEMO

      > var s = "foo //it's a commentaire".replace(/\/\/(.*)/g, "/* $1 */")
      undefined
      > console.log(s)
      foo /* it's a commentaire */
      

      【讨论】:

        【解决方案3】:

        如果你想安全起见,你想考虑这些东西:

        <script type="text/javascript">
          var var1 = prompt('Which character does line-escapes?', '//');
        </script>
        

        这不是注释,因为它在字符串中。我在 here 上发了一篇关于这个的帖子。因此,您要做的是使用该答案中的正则表达式并检查内容以查看您是否正在处理行注释。最简单的方法是将您想要的放在捕获组中:

        (\/\/([^\n]*)(?:\n|$))|(['"])(?:(?!\3|\\).|\\.)*\3|\/(?![*/])(?:[^\\/]|\\.)+\/[igm]*|\/\*(?:[^*]|\*(?!\/))*\*\/
        

        现在,如果捕获组 1 不为空,请将其替换为 /*$2*/。否则,不要做任何事情(或者用整个匹配替换它,实际上不会改变任何东西。

        Debuggex Demo

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-13
          相关资源
          最近更新 更多