index.html 11 KB

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