index.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>正则表达式工具 - FeHelper</title>
  7. <link rel="stylesheet" href="index.css">
  8. <script type="text/javascript" src="../static/vendor/evalCore.min.js"></script>
  9. </head>
  10. <body>
  11. <header class="header">
  12. <div class="logo panel-title">
  13. <img src="../../static/img/fe-48.png" alt="FeHelper Logo" width="24" height="24">
  14. <h3>FeHelper | 正则表达式速查</h3>
  15. <span class="subtitle">支持 JavaScript / Python / PHP / Java 等语言的正则速查</span>
  16. <a href="#" class="x-donate-link" id="donate-link"><i class="nav-icon">❤&nbsp;</i>打赏鼓励</a>
  17. <a class="x-other-tools" id="other-tools"><i class="icon-plus-circle"></i> 探索更多实用工具 <span class="tool-market-badge">工具市场</span></a>
  18. </div>
  19. </header>
  20. <main class="container">
  21. <!-- 正则可视化调试区域 -->
  22. <section class="regex-visual-debugger">
  23. <h2>正则表达式可视化调试</h2>
  24. <div class="visual-debugger-form">
  25. <select id="visualRegexPreset">
  26. <option value="">自定义/选择常用正则</option>
  27. <!-- 动态插入所有内置正则 -->
  28. </select>
  29. <input type="text" id="visualRegex" placeholder="请输入正则表达式,如:^\\d{3}-\\d{8}$" />
  30. <div class="visual-flags-group">
  31. <label class="flag-btn" title="g:全局匹配(查找所有匹配项)">
  32. <input type="checkbox" value="g" /> g
  33. </label>
  34. <label class="flag-btn" title="i:忽略大小写">
  35. <input type="checkbox" value="i" /> i
  36. </label>
  37. <label class="flag-btn" title="m:多行模式(^$作用于每行)">
  38. <input type="checkbox" value="m" /> m
  39. </label>
  40. <span class="flag-desc">常用标志:g=全局 i=忽略大小写 m=多行</span>
  41. </div>
  42. <input type="text" id="visualFlags" placeholder="标志(可选,如:gim)" maxlength="5" style="display:none;" />
  43. </div>
  44. <textarea id="visualTestText" rows="4" placeholder="请输入要测试的文本"></textarea>
  45. <div class="visual-debugger-actions">
  46. <button id="visualTestBtn">测试匹配</button>
  47. <span id="visualErrorMsg" class="visual-error-msg"></span>
  48. </div>
  49. <div id="visualResult" class="visual-result"></div>
  50. </section>
  51. <div class="search-container">
  52. <div class="search-box">
  53. <input type="text" id="regexSearch" placeholder="搜索正则表达式..." />
  54. <span class="search-icon">🔍</span>
  55. </div>
  56. </div>
  57. <div class="regex-categories">
  58. <!-- 验证类 -->
  59. <section class="category">
  60. <h2>验证类</h2>
  61. <div class="regex-list">
  62. <div class="regex-item" data-regex-id="email">邮箱验证</div>
  63. <div class="regex-item" data-regex-id="phone">手机号验证</div>
  64. <div class="regex-item" data-regex-id="tel">固定电话验证</div>
  65. <div class="regex-item" data-regex-id="url">URL验证</div>
  66. <div class="regex-item" data-regex-id="idcard">身份证验证</div>
  67. <div class="regex-item" data-regex-id="ipv4">IPv4地址验证</div>
  68. <div class="regex-item" data-regex-id="date">日期验证</div>
  69. <div class="regex-item" data-regex-id="number">数字验证</div>
  70. <div class="regex-item" data-regex-id="number-n-digits">n位数字验证</div>
  71. <div class="regex-item" data-regex-id="number-min-n-digits">至少n位数字验证</div>
  72. <div class="regex-item" data-regex-id="number-range-digits">数字位数范围验证</div>
  73. <div class="regex-item" data-regex-id="decimal">小数验证</div>
  74. <div class="regex-item" data-regex-id="integer">整数验证</div>
  75. <div class="regex-item" data-regex-id="chinese-name">中文姓名验证</div>
  76. <div class="regex-item" data-regex-id="english-name">英文姓名验证</div>
  77. <div class="regex-item" data-regex-id="username">用户名验证</div>
  78. <div class="regex-item" data-regex-id="password-strong">强密码验证</div>
  79. <div class="regex-item" data-regex-id="mac-address">MAC地址验证</div>
  80. <div class="regex-item" data-regex-id="hex-color">16进制颜色验证</div>
  81. <div class="regex-item" data-regex-id="version-number">版本号验证</div>
  82. </div>
  83. </section>
  84. <!-- 提取类 -->
  85. <section class="category">
  86. <h2>提取类</h2>
  87. <div class="regex-list">
  88. <div class="regex-item" data-regex-id="html-tag">HTML标签提取</div>
  89. <div class="regex-item" data-regex-id="img-url">图片URL提取</div>
  90. <div class="regex-item" data-regex-id="chinese">中文字符提取</div>
  91. <div class="regex-item" data-regex-id="numbers">数字提取</div>
  92. <div class="regex-item" data-regex-id="email-extract">邮箱地址提取</div>
  93. <div class="regex-item" data-regex-id="link-extract">链接提取</div>
  94. <div class="regex-item" data-regex-id="color-hex">颜色值提取</div>
  95. <div class="regex-item" data-regex-id="ip-extract">IP地址提取</div>
  96. </div>
  97. </section>
  98. <!-- 替换类 -->
  99. <section class="category">
  100. <h2>替换类</h2>
  101. <div class="regex-list">
  102. <div class="regex-item" data-regex-id="trim">去除首尾空格</div>
  103. <div class="regex-item" data-regex-id="remove-html">去除HTML标签</div>
  104. <div class="regex-item" data-regex-id="camelcase">驼峰命名转换</div>
  105. <div class="regex-item" data-regex-id="remove-script">去除Script标签</div>
  106. <div class="regex-item" data-regex-id="remove-space">去除多余空格</div>
  107. <div class="regex-item" data-regex-id="remove-comment">去除注释</div>
  108. </div>
  109. </section>
  110. <!-- 格式化类 -->
  111. <section class="category">
  112. <h2>格式化类</h2>
  113. <div class="regex-list">
  114. <div class="regex-item" data-regex-id="money">金额格式化</div>
  115. <div class="regex-item" data-regex-id="phone-format">手机号格式化</div>
  116. <div class="regex-item" data-regex-id="date-format">日期格式化</div>
  117. <div class="regex-item" data-regex-id="card-format">银行卡格式化</div>
  118. <div class="regex-item" data-regex-id="idcard-format">身份证格式化</div>
  119. </div>
  120. </section>
  121. <!-- 特殊字符类 -->
  122. <section class="category">
  123. <h2>特殊字符类</h2>
  124. <div class="regex-list">
  125. <div class="regex-item" data-regex-id="emoji">Emoji表情</div>
  126. <div class="regex-item" data-regex-id="special-char">特殊字符</div>
  127. <div class="regex-item" data-regex-id="unicode">Unicode字符</div>
  128. <div class="regex-item" data-regex-id="invisible-char">不可见字符</div>
  129. </div>
  130. </section>
  131. <!-- 编程相关 -->
  132. <section class="category">
  133. <h2>编程相关</h2>
  134. <div class="regex-list">
  135. <div class="regex-item" data-regex-id="variable">变量命名</div>
  136. <div class="regex-item" data-regex-id="function">函数声明</div>
  137. <div class="regex-item" data-regex-id="json">JSON格式</div>
  138. <div class="regex-item" data-regex-id="xml">XML标签</div>
  139. <div class="regex-item" data-regex-id="css">CSS选择器</div>
  140. </div>
  141. </section>
  142. </div>
  143. </main>
  144. <!-- 模态框 -->
  145. <div class="modal" id="regexModal">
  146. <div class="modal-content">
  147. <span class="close">&times;</span>
  148. <h2 id="modalTitle"></h2>
  149. <div class="regex-versions">
  150. <div class="version">
  151. <h3>JavaScript</h3>
  152. <pre><code id="jsRegex"></code></pre>
  153. <button class="copy-btn" data-target="jsRegex">复制</button>
  154. </div>
  155. <div class="version">
  156. <h3>Python</h3>
  157. <pre><code id="pythonRegex"></code></pre>
  158. <button class="copy-btn" data-target="pythonRegex">复制</button>
  159. </div>
  160. <div class="version">
  161. <h3>PHP</h3>
  162. <pre><code id="phpRegex"></code></pre>
  163. <button class="copy-btn" data-target="phpRegex">复制</button>
  164. </div>
  165. <div class="version">
  166. <h3>Java</h3>
  167. <pre><code id="javaRegex"></code></pre>
  168. <button class="copy-btn" data-target="javaRegex">复制</button>
  169. </div>
  170. </div>
  171. <div class="regex-description">
  172. <h3>说明</h3>
  173. <p id="regexDescription"></p>
  174. </div>
  175. </div>
  176. </div>
  177. <script src="index.js"></script>
  178. </body>
  179. </html>