Compare commits

..

79 Commits

Author SHA1 Message Date
Russell
43abe0f895 perf: 手机号段增加192/6/7(#299)(#300) 2023-11-30 08:57:37 +08:00
Russell
f304ddf19d docs: 更新文档 2023-08-30 09:14:50 +08:00
Russell
912f29e3f3 fix: 更换新能源车牌正则(#281) 2023-08-30 09:14:23 +08:00
铁皮饭盒
f6f93753d2
Merge pull request #274 from thelostword/hexcolor/patch-1
fix: 修复16进制颜色无法匹配带 alpha 值的问题
2022-11-30 16:14:06 +08:00
losting
3b5a440413
Update RULES.js 2022-11-25 14:16:10 +08:00
losting
0c5bb2c90d
Update README.md 2022-11-25 14:14:43 +08:00
losting
583c72361a
Update RULES.js 2022-11-23 12:34:01 +08:00
losting
92f50702aa
Update README.md 2022-11-23 12:33:28 +08:00
thelostword
e62146d1c6 fix: 修复16进制颜色无法匹配带 alpha 值的问题
fix #273
2022-11-23 12:21:08 +08:00
铁皮饭盒
65a2282e82
Merge pull request #270 from q310550690/master
update:网页搜索吸顶
2022-11-07 14:53:39 +08:00
诗小柒
2fec6044a4 update:网页搜索吸顶 2022-11-07 14:32:36 +08:00
Russell
07cad47994 0.3.18 2022-11-07 12:05:50 +08:00
Russell
a35be80cc5 更新日志 2022-11-07 12:03:19 +08:00
Russell
5acc409192 0.3.17 2022-11-07 11:53:21 +08:00
Russell
3c2da62cb7 v0.3.16 2022-11-07 11:52:18 +08:00
Russell
977f357110 perf: 数字/货币金额(支持负数、千分位分隔符)(#238) 2022-11-07 11:47:07 +08:00
Russell
c3d49bdba5 perf: 小数(支持科学计数)(#234) 2022-11-07 11:43:10 +08:00
Russell
2cd6b6935f perf: 缩短"用户名校验"正则长度(#245) 2022-11-07 11:36:43 +08:00
Russell
bd26e0f450 fix: MAC地址的第二位一定是偶数(#264) 2022-11-07 11:34:02 +08:00
Russell
c0b38192b0 perf: 增加户口薄正则 2022-11-07 11:21:16 +08:00
Russell
ec0b032fb8 perf: 增加军官证正则 2022-11-07 11:19:45 +08:00
Russell
0be115a81f Merge branch 'master' into develop 2022-09-01 10:17:39 +08:00
Russell
c77249d98a docs: 更新demo地址 2022-09-01 10:07:27 +08:00
Russell
7913203e44 chore: demo移动到vercel 2022-09-01 10:06:40 +08:00
Russell
152c015f7d chore: 修改demo的打包路径 2022-09-01 10:02:16 +08:00
Russell
a9100ebe20 fix: 整数包含0(#263) 2022-09-01 09:45:42 +08:00
Russell
f36ebbde10 chore: 更新文档 2022-07-20 11:22:11 +08:00
Russell
877ff94622 0.3.15 2022-07-20 11:21:39 +08:00
Russell
32db74a841 docs: 更新文档 2022-07-20 11:20:29 +08:00
Russell
f762c31942 feat: 新增"域名"正则(#232) 2022-07-20 09:28:57 +08:00
Russell
a2a28b8dec chore: 删除npm的lock(#244) 2022-07-20 09:23:26 +08:00
Russell
765a8a2dc6 Merge branch 'master' of https://github.com/any86/any-rule 2022-07-20 09:08:27 +08:00
Russell
37a6d1e457 perf: 优化MD5正则的长度(#256) 2022-07-20 09:08:23 +08:00
铁皮饭盒
2304e724d7
Merge pull request #236 from trentlee0/master
添加 uTools 版链接地址
2022-07-20 09:06:40 +08:00
any86
96cb8eff89 fix: 支持195号段(#240) 2022-05-29 19:24:29 +08:00
Trent Lee
8064470b71 docs: 添加 uTools 版链接地址 2022-05-20 16:11:16 +08:00
Russell
508b202424 docs: 更新文档 2022-04-18 11:12:26 +08:00
Russell
39085bbd42 0.3.14 2022-04-18 11:11:22 +08:00
Russell
a6248d7208 feat: 新增"中国省"(#227) 2022-04-18 11:10:45 +08:00
Russell
86f2392d39 feat: 新增"日期(严谨, 支持闰年判断)"(#226) 2022-04-18 11:09:06 +08:00
Russell
574bbf8d8e feat: 新增"匹配中文汉字和中文标点" 2022-04-18 11:04:57 +08:00
铁皮饭盒
8337d819f5
Merge pull request #224 from heshimang/develop
feat: 添加车架号正则
2022-03-22 10:45:36 +08:00
heshimang
a4794f509c feat: 添加车架号正则 2022-03-22 09:48:49 +08:00
铁皮饭盒
c4b961531c
Merge pull request #222 from DiracKeeko/modify_dev
Modify dev
2022-03-11 20:01:38 +08:00
Keeko
39143127bc [feat] 新增 ASCII码表中的全部的特殊字符 正则 2022-03-11 17:10:02 +08:00
Keeko
5782ee1ddc [feat] 新增 浮点数(严格) 正则 2022-03-11 17:03:36 +08:00
Keeko
03471b0036 [feat] 更新浮点数逻辑 2022-03-11 16:51:55 +08:00
Keeko
043137e964 [fix] 修复整数逻辑, ban "022", allow "22" 2022-03-11 16:30:39 +08:00
铁皮饭盒
d71e412375
Update README.md 2022-02-22 17:39:20 +08:00
Russell
7601b3fc2a docs: 更新文档, 加入hyjs链接 2022-01-11 10:32:12 +08:00
Russell
2f86730484 fix: v0.3.13(#175, #207, #210, #215) 2022-01-10 13:35:23 +08:00
Russell
566f079bf8 0.3.13 2022-01-10 13:26:06 +08:00
Russell
21f94dfe65 chore: 更新依赖, 支持node16 2022-01-10 13:23:41 +08:00
铁皮饭盒
594175b638
Merge pull request #198 from any86/dependabot/npm_and_yarn/packages/www/color-string-1.6.0
chore(deps): bump color-string from 1.5.3 to 1.6.0 in /packages/www
2021-12-21 08:55:46 +08:00
Russell
e18baa40e5 chore: 更新circle ci中node镜像的版本 2021-12-20 15:41:06 +08:00
Russell
be1a8c73b3 chore(build): 更新文档脚本中gif图 2021-12-20 15:09:23 +08:00
Russell
cfc0ce47c4 docs: 更新文档 2021-12-20 14:40:12 +08:00
铁皮饭盒
22e14efe14
Merge pull request #209 from 2462870727/develop
fix 子网掩码正则错误问题
2021-12-20 14:39:16 +08:00
铁皮饭盒
ba3213aa54
Merge branch 'develop' into develop 2021-12-20 14:39:08 +08:00
铁皮饭盒
f159ef301f
Merge pull request #176 from FE-ng/dev_momentTimeRule_lf
添加了能够被moment正确转化的正则
2021-12-20 14:38:11 +08:00
铁皮饭盒
113abe7aa7
Merge branch 'develop' into dev_momentTimeRule_lf 2021-12-20 14:38:04 +08:00
Russell
77509e77e6 test: 增加测试用例(#207) 2021-12-20 14:23:14 +08:00
Russell
86b6af24c9 fix: 修正"澳门身份证"(#210) 2021-12-20 14:19:18 +08:00
Russell
8280758a03 fix: 参考百度百科和"chrome地址栏", 修改URL的验证规则(#175) 2021-12-20 11:30:37 +08:00
jiangkai@flksec.com
9690773b33 fix 子网掩码正则错误问题 2021-11-19 10:47:37 +08:00
Russell
57ef9be087 perf: 优化ipv6正则(#189) 2021-10-29 10:29:43 +08:00
any86
35256d81dd chore: 修改json格式错误 2021-10-20 22:43:58 +08:00
any86
ffc748695f
Merge pull request #204 from 2462870727/master
# 223
2021-10-20 22:39:46 +08:00
any86
4fafde7efc
Merge branch 'develop' into master 2021-10-20 22:39:20 +08:00
2462870727@qq.com
89083d14a6 update 复杂密码校验 2021-10-20 21:15:46 +08:00
xiaocaiji
7a0d7a32a9
Update RULES.js 2021-10-20 17:47:15 +08:00
xiaocaiji
f419267072
Update README.md 2021-10-20 17:05:33 +08:00
xiaocaiji
aff19cbcab
Update README.md 2021-10-20 17:04:50 +08:00
xiaocaiji
d9b00b4483
Update RULES.js 2021-10-20 17:04:14 +08:00
xiaocaiji
cd141a9472
Update README.md 2021-10-20 17:02:08 +08:00
xiaocaiji
26220db48a
Update RULES.js 2021-10-20 16:57:24 +08:00
Russell
8414a8e1aa docs: 更新文档 2021-10-20 11:21:51 +08:00
dependabot[bot]
2b5758a98d
chore(deps): bump color-string from 1.5.3 to 1.6.0 in /packages/www
Bumps [color-string](https://github.com/Qix-/color-string) from 1.5.3 to 1.6.0.
- [Release notes](https://github.com/Qix-/color-string/releases)
- [Changelog](https://github.com/Qix-/color-string/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Qix-/color-string/commits/1.6.0)

---
updated-dependencies:
- dependency-name: color-string
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-26 06:11:06 +00:00
liufeng
84e0699fa5 feat(components): 增加可以被moment转化成功的时间正则 2021-06-04 18:26:53 +08:00
12 changed files with 736 additions and 27708 deletions

View File

@ -30,7 +30,7 @@ jobs:
# - run: yarn install # - run: yarn install
# - run: yarn add codecov # - run: yarn add codecov
- run: yarn add chalk - run: yarn add chalk@2.4.2

View File

@ -1,6 +1,19 @@
# 更新日志 # 更新日志
🚀 [提交问题](https://github.com/any86/any-rule/issues/new) 🚀 [提交问题](https://github.com/any86/any-rule/issues/new)
### 0.3.18(2022-11-07)
- 优化数字/货币金额(支持负数、千分位分隔符)
- 优化小数(支持科学计数)
- 优化缩短"用户名校验"正则长度
- 增加户口薄正则
- 增加军官证正则
- 修复MAC地址的第二位一定是偶数(#264)
### 0.3.13(2022-01-10)
- 修正"网址"正则, 兼容更多符合的网址.
- 修正澳门身份证错误.
### 0.3.12(2021-10-20) ### 0.3.12(2021-10-20)
- 修复网址中带有"()"不能通过. - 修复网址中带有"()"不能通过.
- 新增"整数"/"浮点数"等正则. - 新增"整数"/"浮点数"等正则.

119
README.md
View File

@ -1,9 +1,9 @@
# 正则大全 ![已收录70条](https://img.shields.io/badge/已收录-70条-673ab7.svg) [![版本](https://badgen.net/vs-marketplace/v/russell.any-rule)](https://marketplace.visualstudio.com/items?itemName=russell.any-rule) [![安装量](https://badgen.net/vs-marketplace/i/russell.any-rule)](https://marketplace.visualstudio.com/items?itemName=russell.any-rule) [![下载量](https://badgen.net/vs-marketplace/d/russell.any-rule)](https://marketplace.visualstudio.com/items?itemName=russell.any-rule) ![MIT](https://img.shields.io/badge/license-MIT-F44336.svg) [![CircleCI](https://badgen.net/github/status/any86/any-rule/master/ci/circleci)](https://circleci.com/gh/any86/any-rule) # 正则大全 ![已收录84条](https://img.shields.io/badge/已收录-84条-673ab7.svg) [![版本](https://badgen.net/vs-marketplace/v/russell.any-rule)](https://marketplace.visualstudio.com/items?itemName=russell.any-rule) [![安装量](https://badgen.net/vs-marketplace/i/russell.any-rule)](https://marketplace.visualstudio.com/items?itemName=russell.any-rule) [![下载量](https://badgen.net/vs-marketplace/d/russell.any-rule)](https://marketplace.visualstudio.com/items?itemName=russell.any-rule) ![MIT](https://img.shields.io/badge/license-MIT-F44336.svg) [![CircleCI](https://badgen.net/github/status/any86/any-rule/master/ci/circleci)](https://circleci.com/gh/any86/any-rule)
🦕支持**web** / **vscode** / **idea** / **Alfred Workflow**多平台 🦕支持**web** / **vscode** / **idea** / **Alfred Workflow**多平台
## :rocket:web版本 ## :rocket:web版本
https://any86.github.io/any-rule/ https://any-rule.vercel.app/
## 🍭vscode插件 ## 🍭vscode插件
@ -16,40 +16,48 @@ vscode应用商店中搜索"**any-rule**".
1. 按**F1**(mac下fn+F1)打开正则列表. 1. 按**F1**(mac下fn+F1)打开正则列表.
2. **输入关键词搜索**, 比如"手机". 2. **输入关键词搜索**, 比如"手机".
![预览图](https://user-gold-cdn.xitu.io/2020/1/10/16f8e01a684a0a18?w=420&h=243&f=gif&s=414162) ![GIF](https://user-images.githubusercontent.com/8264787/146724787-888a8666-5d2a-4e5e-b383-aec7c53bd312.gif)
**方式2:** **方式2:**
右键选择"🦕正则大全". 右键选择"🦕正则大全".
![](https://user-gold-cdn.xitu.io/2020/2/28/17087735718cca3b?w=389&h=400&f=png&s=55934) ![GIF](https://user-images.githubusercontent.com/8264787/146725447-4d92caed-2dd0-4f11-91d1-8da9cd8ff08b.gif)
**方式3:** **方式3:**
在代码任意位置输入"**@zz**". 在代码任意位置输入"**@zz**".
![GIF](https://user-images.githubusercontent.com/8264787/146725402-30b34119-b709-4d49-adb2-af8dbb786d3b.gif)
![预览图](https://user-gold-cdn.xitu.io/2020/2/28/17089999afc7a21c?w=722&h=408&f=gif&s=299355)
## 👩‍🏫图解正则 ## 👩‍🏫图解正则
<details> <details>
<summary>查看详情</summary> <summary>查看详情</summary>
每次在any-rule中选择正则后会弹出提示, 可点击"🤖图解正则". 每次在any-rule中选择正则后会弹出提示, 可点击"🤖图解正则".
![预览图](https://user-gold-cdn.xitu.io/2020/2/23/1706e32c3a6fb116?w=533&h=95&f=png&s=21563) ![image](https://user-images.githubusercontent.com/8264787/146726200-d97e48c3-df76-4531-8210-b6935fffb997.png)
点击后可以看到正则解析, 方便大家学习. 点击后可以看到正则解析, 方便大家学习.
![预览图](https://user-gold-cdn.xitu.io/2020/2/23/1706e349b600c28b?w=1151&h=500&f=png&s=45210) ![image](https://user-images.githubusercontent.com/8264787/146726350-58166bf9-7f7f-4685-86aa-f055d0c0b914.png)
**注意**: 图解直接使用了https://regexper.com, 在此对作者表示敬意和感谢. **注意**: 图解直接使用了https://regexper.com, 在此对作者表示敬意和感谢.
</details> </details>
## 社区版本 ## 社区版本
社区版本非本人维护, 只是其他开发者使用了any-rule整理的正则内容, 如使用出现问题可直接与其开发者联系.
[idea版](https://github.com/zhoriya/idea-rule) [idea版](https://github.com/zhoriya/idea-rule)
[Alfred Workflow版](https://github.com/cccyb/workflows) [Alfred Workflow版](https://github.com/cccyb/workflows)
[hyjs: 函数封装版](https://github.com/heiyehk/hyjs/tree/main/packages/utils)
[命令行版本](https://github.com/shenguanjiejie/workwork)
[uTools版本](https://github.com/trentlee0/utools-any-rule)
## :fire:关于PR ## :fire:关于PR
欢迎大家PR, 步骤如下: 欢迎大家PR, 步骤如下:
1. **正则**请在**packages/www/src/RULES.js**中添加. 1. **正则**请在**packages/www/src/RULES.js**中添加.
@ -76,9 +84,9 @@ vscode应用商店中搜索"**any-rule**".
/^((ht|f)tps?:\/\/)?[\w-]+(\.[\w-]+)+:\d{1,5}\/?$/ /^((ht|f)tps?:\/\/)?[\w-]+(\.[\w-]+)+:\d{1,5}\/?$/
``` ```
### 网址(url,支持端口和"?+参数"和"#+参数) ### 网址(URL)
```javascript ```javascript
/^(((ht|f)tps?):\/\/)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?$/ /^(((ht|f)tps?):\/\/)?([^!@#$%^&*?.\s-]([^!@#$%^&*?.\s]{0,63}[^!@#$%^&*?.\s])?\.)+[a-z]{2,6}\/?/
``` ```
### 统一社会信用代码 ### 统一社会信用代码
@ -106,9 +114,9 @@ vscode应用商店中搜索"**any-rule**".
/^magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.*$/ /^magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.*$/
``` ```
### 子网掩码 ### 子网掩码(不包含 0.0.0.0)
```javascript ```javascript
/^(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){3}$/ /^(254|252|248|240|224|192|128)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(255|254|252|248|240|224|192|128|0)$/
``` ```
### linux"隐藏文件"路径 ### linux"隐藏文件"路径
@ -153,7 +161,7 @@ vscode应用商店中搜索"**any-rule**".
### md5格式(32位) ### md5格式(32位)
```javascript ```javascript
/^([a-f\d]{32}|[A-F\d]{32})$/ /^[a-fA-F0-9]{32}$/
``` ```
### GUID/UUID ### GUID/UUID
@ -193,12 +201,7 @@ vscode应用商店中搜索"**any-rule**".
### 数字/货币金额(支持负数、千分位分隔符) ### 数字/货币金额(支持负数、千分位分隔符)
```javascript ```javascript
/^-?\d+(,\d{3})*(\.\d{1,2})?$/ /^-?\d{1,3}(,\d{3})*(\.\d{1,2})?$/
```
### 数字/货币金额 (只支持正数、不支持校验千分位分隔符)
```javascript
/(?:^[1-9]([0-9]+)?(?:\.[0-9]{1,2})?$)|(?:^(?:0)$)|(?:^[0-9]\.[0-9](?:[0-9])?$)/
``` ```
### 银行卡号10到30位, 覆盖对公/私账户, 参考[微信支付](https://pay.weixin.qq.com/wiki/doc/api/xiaowei.php?chapter=22_1) ### 银行卡号10到30位, 覆盖对公/私账户, 参考[微信支付](https://pay.weixin.qq.com/wiki/doc/api/xiaowei.php?chapter=22_1)
@ -218,7 +221,7 @@ vscode应用商店中搜索"**any-rule**".
### 车牌号(新能源) ### 车牌号(新能源)
```javascript ```javascript
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z](?:((\d{5}[A-HJK])|([A-HJK][A-HJ-NP-Z0-9][0-9]{4}))|[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳])$/ /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z](([DF]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[DF]))$/
``` ```
### 车牌号(非新能源) ### 车牌号(非新能源)
@ -233,7 +236,7 @@ vscode应用商店中搜索"**any-rule**".
### 手机号(mobile phone)中国(严谨), 根据工信部2019年最新公布的手机号段 ### 手机号(mobile phone)中国(严谨), 根据工信部2019年最新公布的手机号段
```javascript ```javascript
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/ /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[01256789]))\d{8}$/
``` ```
### 手机号(mobile phone)中国(宽松), 只要是13,14,15,16,17,18,19开头即可 ### 手机号(mobile phone)中国(宽松), 只要是13,14,15,16,17,18,19开头即可
@ -246,11 +249,26 @@ vscode应用商店中搜索"**any-rule**".
/^(?:(?:\+|00)86)?1\d{10}$/ /^(?:(?:\+|00)86)?1\d{10}$/
``` ```
### date(日期) ### 日期(宽松)
```javascript ```javascript
/^\d{1,4}(-)(1[0-2]|0?[1-9])\1(0?[1-9]|[1-2]\d|30|31)$/ /^\d{1,4}(-)(1[0-2]|0?[1-9])\1(0?[1-9]|[1-2]\d|30|31)$/
``` ```
### 日期(严谨, 支持闰年判断)
```javascript
/^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$/
```
### 中国省
```javascript
/^浙江|上海|北京|天津|重庆|黑龙江|吉林|辽宁|内蒙古|河北|新疆|甘肃|青海|陕西|宁夏|河南|山东|山西|安徽|湖北|湖南|江苏|四川|贵州|云南|广西|西藏|江西|广东|福建|台湾|海南|香港|澳门$/
```
### 可以被moment转化成功的时间 YYYYMMDD HH:mm:ss
```javascript
/^\d{4}([/:-\S])(1[0-2]|0?[1-9])\1(0?[1-9]|[1-2]\d|30|31) (?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$/
```
### email(邮箱) ### email(邮箱)
```javascript ```javascript
/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
@ -291,14 +309,14 @@ vscode应用商店中搜索"**any-rule**".
/^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])+$/ /^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])+$/
``` ```
### 小数 ### 小数(支持科学计数)
```javascript ```javascript
/^\d+\.\d+$/ /^[+-]?(\d+([.]\d*)?([eE][+-]?\d+)?|[.]\d+([eE][+-]?\d+)?)$/
``` ```
### 数字 ### 只包含数字
```javascript ```javascript
/^\d{1,}$/ /^\d+$/
``` ```
### html标签(宽松匹配) ### html标签(宽松匹配)
@ -306,6 +324,11 @@ vscode应用商店中搜索"**any-rule**".
/<(\w+)[^>]*>(.*?<\/\1>)?/ /<(\w+)[^>]*>(.*?<\/\1>)?/
``` ```
### 匹配中文汉字和中文标点
```javascript
/[\u4e00-\u9fa5|\u3002|\uff1f|\uff01|\uff0c|\u3001|\uff1b|\uff1a|\u201c|\u201d|\u2018|\u2019|\uff08|\uff09|\u300a|\u300b|\u3008|\u3009|\u3010|\u3011|\u300e|\u300f|\u300c|\u300d|\ufe43|\ufe44|\u3014|\u3015|\u2026|\u2014|\uff5e|\ufe4f|\uffe5]/
```
### qq号格式正确 ### qq号格式正确
```javascript ```javascript
/^[1-9][0-9]{4,10}$/ /^[1-9][0-9]{4,10}$/
@ -338,7 +361,7 @@ vscode应用商店中搜索"**any-rule**".
### 用户名校验4到16位字母数字下划线减号 ### 用户名校验4到16位字母数字下划线减号
```javascript ```javascript
/^[a-zA-Z0-9_-]{4,16}$/ /^[\w-]{4,16}$/
``` ```
### ip-v4[:端口] ### ip-v4[:端口]
@ -348,12 +371,12 @@ vscode应用商店中搜索"**any-rule**".
### ip-v6[:端口] ### ip-v6[:端口]
```javascript ```javascript
/^(?:(?:(?:[0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))|\[(?:(?:(?:[0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))\](?::(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$/i /(^(?:(?:(?:[0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$)|(^\[(?:(?:(?:[0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))\](?::(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$)/i
``` ```
### 16进制颜色 ### 16进制颜色
```javascript ```javascript
/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/ /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3}|[a-fA-F0-9]{8}|[a-fA-F0-9]{4})$/
``` ```
### 微信号(wx)6至20位以字母开头字母数字减号下划线 ### 微信号(wx)6至20位以字母开头字母数字减号下划线
@ -383,7 +406,7 @@ vscode应用商店中搜索"**any-rule**".
### mac地址 ### mac地址
```javascript ```javascript
/^((([a-f0-9]{2}:){5})|(([a-f0-9]{2}-){5}))[a-f0-9]{2}$/i /^(([a-f0-9][0,2,4,6,8,a,c,e]:([a-f0-9]{2}:){4})|([a-f0-9][0,2,4,6,8,a,c,e]-([a-f0-9]{2}-){4}))[a-f0-9]{2}$/i
``` ```
### 匹配连续重复的字符 ### 匹配连续重复的字符
@ -403,7 +426,7 @@ vscode应用商店中搜索"**any-rule**".
### 澳门身份证 ### 澳门身份证
```javascript ```javascript
/^[1|5|7]\d{6}[(\d)]{3}$/ /^[1|5|7]\d{6}\(\d\)$/
``` ```
### 台湾身份证 ### 台湾身份证
@ -411,6 +434,16 @@ vscode应用商店中搜索"**any-rule**".
/^[a-zA-Z][0-9]{9}$/ /^[a-zA-Z][0-9]{9}$/
``` ```
### 大写字母,小写字母,数字,特殊符号 `@#$%^&*`~()-+=` 中任意3项密码
```javascript
/^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\W_!@#$%^&*`~()-+=]+$)(?![0-9\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\W_!@#$%^&*`~()-+=]/
```
### ASCII码表中的全部的特殊字符
```javascript
/[\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]+/
```
### 正整数不包含0 ### 正整数不包含0
```javascript ```javascript
/^\+?[1-9]\d*$/ /^\+?[1-9]\d*$/
@ -423,15 +456,35 @@ vscode应用商店中搜索"**any-rule**".
### 整数 ### 整数
```javascript ```javascript
/^-?[0-9]\d*$/ /^(?:0|(?:-?[1-9]\d*))$/
``` ```
### 浮点数 ### 浮点数
```javascript ```javascript
/^(-?\d+)(\.\d+)?$/ /^(-?[1-9]\d*\.\d+|-?0\.\d*[1-9]\d*|0\.0+)$/
```
### 浮点数(严格)
```javascript
/^(-?[1-9]\d*\.\d+|-?0\.\d*[1-9])$/
``` ```
### email(支持中文邮箱) ### email(支持中文邮箱)
```javascript ```javascript
/^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/ /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
``` ```
### 域名(非网址, 不包含协议)
```javascript
/^([0-9a-zA-Z-]{1,}\.)+([a-zA-Z]{2,})$/
```
### 军官/士兵证
```javascript
/^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$/
```
### 户口薄
```javascript
/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
```

6311
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,13 @@
"publisher": "russell", "publisher": "russell",
"displayName": "any-rule", "displayName": "any-rule",
"description": "你要的\"正则\"都在这!", "description": "你要的\"正则\"都在这!",
"version": "0.3.12", "version": "0.3.18",
"keywords": [
"vscode",
"typescript",
"regxp",
"正则"
],
"husky": { "husky": {
"hooks": { "hooks": {
"pre-push": "npm run test:rules" "pre-push": "npm run test:rules"
@ -25,6 +31,7 @@
"vscode": "^1.12.0" "vscode": "^1.12.0"
}, },
"categories": [ "categories": [
"Snippets",
"Other" "Other"
], ],
"icon": "images/vscode-logo.png", "icon": "images/vscode-logo.png",
@ -80,7 +87,7 @@
}, },
{ {
"command": "extension.rule3", "command": "extension.rule3",
"title": "$(rocket) zz: 网址(url,支持端口和\"?+参数\"和\"#+参数)" "title": "$(rocket) zz: 网址(URL)"
}, },
{ {
"command": "extension.rule4", "command": "extension.rule4",
@ -104,7 +111,7 @@
}, },
{ {
"command": "extension.rule9", "command": "extension.rule9",
"title": "$(rocket) zz: 子网掩码" "title": "$(rocket) zz: 子网掩码(不包含 0.0.0.0)"
}, },
{ {
"command": "extension.rule10", "command": "extension.rule10",
@ -176,199 +183,235 @@
}, },
{ {
"command": "extension.rule27", "command": "extension.rule27",
"title": "$(rocket) zz: 数字/货币金额 (只支持正数、不支持校验千分位分隔符)"
},
{
"command": "extension.rule28",
"title": "$(rocket) zz: 银行卡号10到30位, 覆盖对公/私账户, 参考[微信支付](https://pay.weixin.qq.com/wiki/doc/api/xiaowei.php?chapter=22_1)" "title": "$(rocket) zz: 银行卡号10到30位, 覆盖对公/私账户, 参考[微信支付](https://pay.weixin.qq.com/wiki/doc/api/xiaowei.php?chapter=22_1)"
}, },
{ {
"command": "extension.rule29", "command": "extension.rule28",
"title": "$(rocket) zz: 中文姓名" "title": "$(rocket) zz: 中文姓名"
}, },
{ {
"command": "extension.rule30", "command": "extension.rule29",
"title": "$(rocket) zz: 英文姓名" "title": "$(rocket) zz: 英文姓名"
}, },
{ {
"command": "extension.rule31", "command": "extension.rule30",
"title": "$(rocket) zz: 车牌号(新能源)" "title": "$(rocket) zz: 车牌号(新能源)"
}, },
{ {
"command": "extension.rule32", "command": "extension.rule31",
"title": "$(rocket) zz: 车牌号(非新能源)" "title": "$(rocket) zz: 车牌号(非新能源)"
}, },
{ {
"command": "extension.rule33", "command": "extension.rule32",
"title": "$(rocket) zz: 车牌号(新能源+非新能源)" "title": "$(rocket) zz: 车牌号(新能源+非新能源)"
}, },
{ {
"command": "extension.rule34", "command": "extension.rule33",
"title": "$(rocket) zz: 手机号(mobile phone)中国(严谨), 根据工信部2019年最新公布的手机号段" "title": "$(rocket) zz: 手机号(mobile phone)中国(严谨), 根据工信部2019年最新公布的手机号段"
}, },
{ {
"command": "extension.rule35", "command": "extension.rule34",
"title": "$(rocket) zz: 手机号(mobile phone)中国(宽松), 只要是13,14,15,16,17,18,19开头即可" "title": "$(rocket) zz: 手机号(mobile phone)中国(宽松), 只要是13,14,15,16,17,18,19开头即可"
}, },
{ {
"command": "extension.rule36", "command": "extension.rule35",
"title": "$(rocket) zz: 手机号(mobile phone)中国(最宽松), 只要是1开头即可, 如果你的手机号是用来接收短信, 优先建议选择这一条" "title": "$(rocket) zz: 手机号(mobile phone)中国(最宽松), 只要是1开头即可, 如果你的手机号是用来接收短信, 优先建议选择这一条"
}, },
{
"command": "extension.rule36",
"title": "$(rocket) zz: 日期(宽松)"
},
{ {
"command": "extension.rule37", "command": "extension.rule37",
"title": "$(rocket) zz: date(日期)" "title": "$(rocket) zz: 日期(严谨, 支持闰年判断)"
}, },
{ {
"command": "extension.rule38", "command": "extension.rule38",
"title": "$(rocket) zz: email(邮箱)" "title": "$(rocket) zz: 中国省"
}, },
{ {
"command": "extension.rule39", "command": "extension.rule39",
"title": "$(rocket) zz: 座机(tel phone)电话(国内),如: 0341-86091234" "title": "$(rocket) zz: 可以被moment转化成功的时间 YYYYMMDD HH:mm:ss"
}, },
{ {
"command": "extension.rule40", "command": "extension.rule40",
"title": "$(rocket) zz: 身份证号(1代,15位数字)" "title": "$(rocket) zz: email(邮箱)"
}, },
{ {
"command": "extension.rule41", "command": "extension.rule41",
"title": "$(rocket) zz: 身份证号(2代,18位数字),最后一位是校验位,可能为数字或字符X" "title": "$(rocket) zz: 座机(tel phone)电话(国内),如: 0341-86091234"
}, },
{ {
"command": "extension.rule42", "command": "extension.rule42",
"title": "$(rocket) zz: 身份证号, 支持1/2代(15位/18位数字)" "title": "$(rocket) zz: 身份证号(1代,15位数字)"
}, },
{ {
"command": "extension.rule43", "command": "extension.rule43",
"title": "$(rocket) zz: 护照(包含香港、澳门)" "title": "$(rocket) zz: 身份证号(2代,18位数字),最后一位是校验位,可能为数字或字符X"
}, },
{ {
"command": "extension.rule44", "command": "extension.rule44",
"title": "$(rocket) zz: 帐号是否合法(字母开头允许5-16字节允许字母数字下划线组合" "title": "$(rocket) zz: 身份证号, 支持1/2代(15位/18位数字)"
}, },
{ {
"command": "extension.rule45", "command": "extension.rule45",
"title": "$(rocket) zz: 中文/汉字" "title": "$(rocket) zz: 护照(包含香港、澳门)"
}, },
{ {
"command": "extension.rule46", "command": "extension.rule46",
"title": "$(rocket) zz: 小数" "title": "$(rocket) zz: 帐号是否合法(字母开头允许5-16字节允许字母数字下划线组合"
}, },
{ {
"command": "extension.rule47", "command": "extension.rule47",
"title": "$(rocket) zz: 字" "title": "$(rocket) zz: 中文/汉字"
}, },
{ {
"command": "extension.rule48", "command": "extension.rule48",
"title": "$(rocket) zz: html标签(宽松匹配)" "title": "$(rocket) zz: 小数(支持科学计数)"
}, },
{ {
"command": "extension.rule49", "command": "extension.rule49",
"title": "$(rocket) zz: qq号格式正确" "title": "$(rocket) zz: 只包含数字"
}, },
{ {
"command": "extension.rule50", "command": "extension.rule50",
"title": "$(rocket) zz: 数字和字母组成" "title": "$(rocket) zz: html标签(宽松匹配)"
}, },
{ {
"command": "extension.rule51", "command": "extension.rule51",
"title": "$(rocket) zz: 英文字母" "title": "$(rocket) zz: 匹配中文汉字和中文标点"
}, },
{ {
"command": "extension.rule52", "command": "extension.rule52",
"title": "$(rocket) zz: 小写英文字母组成" "title": "$(rocket) zz: qq号格式正确"
}, },
{ {
"command": "extension.rule53", "command": "extension.rule53",
"title": "$(rocket) zz: 大写英文字母" "title": "$(rocket) zz: 数字和字母组成"
}, },
{ {
"command": "extension.rule54", "command": "extension.rule54",
"title": "$(rocket) zz: 密码强度校验最少6位包括至少1个大写字母1个小写字母1个数字1个特殊字符" "title": "$(rocket) zz: 英文字母"
}, },
{ {
"command": "extension.rule55", "command": "extension.rule55",
"title": "$(rocket) zz: 用户名校验4到16位字母数字下划线减号" "title": "$(rocket) zz: 小写英文字母组成"
}, },
{ {
"command": "extension.rule56", "command": "extension.rule56",
"title": "$(rocket) zz: ip-v4[:端口]" "title": "$(rocket) zz: 大写英文字母"
}, },
{ {
"command": "extension.rule57", "command": "extension.rule57",
"title": "$(rocket) zz: ip-v6[:端口]" "title": "$(rocket) zz: 密码强度校验最少6位包括至少1个大写字母1个小写字母1个数字1个特殊字符"
}, },
{ {
"command": "extension.rule58", "command": "extension.rule58",
"title": "$(rocket) zz: 16进制颜色" "title": "$(rocket) zz: 用户名校验4到16位字母数字下划线减号"
}, },
{ {
"command": "extension.rule59", "command": "extension.rule59",
"title": "$(rocket) zz: 微信号(wx)6至20位以字母开头字母数字减号下划线" "title": "$(rocket) zz: ip-v4[:端口]"
}, },
{ {
"command": "extension.rule60", "command": "extension.rule60",
"title": "$(rocket) zz: 邮政编码(中国)" "title": "$(rocket) zz: ip-v6[:端口]"
}, },
{ {
"command": "extension.rule61", "command": "extension.rule61",
"title": "$(rocket) zz: 中文和数字" "title": "$(rocket) zz: 16进制颜色"
}, },
{ {
"command": "extension.rule62", "command": "extension.rule62",
"title": "$(rocket) zz: 不能包含字母" "title": "$(rocket) zz: 微信号(wx)6至20位以字母开头字母数字减号下划线"
}, },
{ {
"command": "extension.rule63", "command": "extension.rule63",
"title": "$(rocket) zz: java包名" "title": "$(rocket) zz: 邮政编码(中国)"
}, },
{ {
"command": "extension.rule64", "command": "extension.rule64",
"title": "$(rocket) zz: mac地址" "title": "$(rocket) zz: 中文和数字"
}, },
{ {
"command": "extension.rule65", "command": "extension.rule65",
"title": "$(rocket) zz: 匹配连续重复的字符" "title": "$(rocket) zz: 不能包含字母"
}, },
{ {
"command": "extension.rule66", "command": "extension.rule66",
"title": "$(rocket) zz: 数字和英文字母组成,并且同时含有数字和英文字母" "title": "$(rocket) zz: java包名"
}, },
{ {
"command": "extension.rule67", "command": "extension.rule67",
"title": "$(rocket) zz: 香港身份证 " "title": "$(rocket) zz: mac地址"
}, },
{ {
"command": "extension.rule68", "command": "extension.rule68",
"title": "$(rocket) zz: 澳门身份证 " "title": "$(rocket) zz: 匹配连续重复的字符"
}, },
{ {
"command": "extension.rule69", "command": "extension.rule69",
"title": "$(rocket) zz: 台湾身份证 " "title": "$(rocket) zz: 数字和英文字母组成,并且同时含有数字和英文字母"
}, },
{ {
"command": "extension.rule70", "command": "extension.rule70",
"title": "$(rocket) zz: 正整数不包含0 " "title": "$(rocket) zz: 香港身份证 "
}, },
{ {
"command": "extension.rule71", "command": "extension.rule71",
"title": "$(rocket) zz: 负整数不包含0 " "title": "$(rocket) zz: 澳门身份证 "
}, },
{ {
"command": "extension.rule72", "command": "extension.rule72",
"title": "$(rocket) zz: 整数 " "title": "$(rocket) zz: 台湾身份证 "
}, },
{ {
"command": "extension.rule73", "command": "extension.rule73",
"title": "$(rocket) zz: 浮点数 " "title": "$(rocket) zz: 大写字母,小写字母,数字,特殊符号 `@#$%^&*`~()-+=` 中任意3项密码"
}, },
{ {
"command": "extension.rule74", "command": "extension.rule74",
"title": "$(rocket) zz: ASCII码表中的全部的特殊字符"
},
{
"command": "extension.rule75",
"title": "$(rocket) zz: 正整数不包含0"
},
{
"command": "extension.rule76",
"title": "$(rocket) zz: 负整数不包含0"
},
{
"command": "extension.rule77",
"title": "$(rocket) zz: 整数"
},
{
"command": "extension.rule78",
"title": "$(rocket) zz: 浮点数"
},
{
"command": "extension.rule79",
"title": "$(rocket) zz: 浮点数(严格)"
},
{
"command": "extension.rule80",
"title": "$(rocket) zz: email(支持中文邮箱)" "title": "$(rocket) zz: email(支持中文邮箱)"
}, },
{
"command": "extension.rule81",
"title": "$(rocket) zz: 域名(非网址, 不包含协议)"
},
{
"command": "extension.rule82",
"title": "$(rocket) zz: 军官/士兵证"
},
{
"command": "extension.rule83",
"title": "$(rocket) zz: 户口薄"
},
{ {
"command": "extension.rule.callByMenu", "command": "extension.rule.callByMenu",
"title": "🦕正则大全(70条)" "title": "🦕正则大全(84条)"
} }
] ]
}, },

File diff suppressed because it is too large Load Diff

View File

@ -6,15 +6,16 @@
"serve": "vue-cli-service serve", "serve": "vue-cli-service serve",
"build": "vue-cli-service build", "build": "vue-cli-service build",
"release": "npm run build && node ./scripts/demo", "release": "npm run build && node ./scripts/demo",
"lint": "vue-cli-service lint" "lint": "vue-cli-service lint",
"rm:nm":"rimraf node_modules"
}, },
"dependencies": { "dependencies": {
"clipboard": "^2.0.4", "clipboard": "^2.0.4",
"core-js": "^2.6.5", "core-js": "^2.6.5",
"crypto-js": "^4.0.0", "crypto-js": "^4.0.0",
"lodash": "^4.17.13", "lodash": "^4.17.13",
"node-sass": "^4.13.1", "node-sass": "^6.0.0",
"sass-loader": "^7.1.0", "sass-loader": "^10.0.0",
"vue": "^2.6.10" "vue": "^2.6.10"
}, },
"devDependencies": { "devDependencies": {

View File

@ -307,6 +307,10 @@ main {
header { header {
padding: 15px; padding: 15px;
position: sticky;
top: 0;
z-index: 99;
background: linear-gradient(180deg, white 80%, transparent);
> .search-input { > .search-input {
display: block; display: block;
margin-top: 15px; margin-top: 15px;

View File

@ -15,9 +15,13 @@ module.exports = [{
counterExamples: ['192.168.1.1', 'https://www.jd.com'] counterExamples: ['192.168.1.1', 'https://www.jd.com']
}, },
{ {
title: '网址(url,支持端口和"?+参数"和"#+参数)', // 参考:
rule: /^(((ht|f)tps?):\/\/)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-\(\)]*[\w@?^=%&/~+#-\(\)])?$/, // https://baike.baidu.com/item/%E9%A1%B6%E7%BA%A7%E5%9F%9F%E5%90%8D#4_1
examples: ['www.qq.com', 'https://baidu.com', 'http://baidu.com', 'https://www.amap.com/search?id=BV10060895&city=420111&geoobj=113.207951%7C29.992557%7C115.785782%7C31.204369&query_type=IDQ&query=%E5%85%89%E8%B0%B7%E5%B9%BF%E5%9C%BA(%E5%9C%B0%E9%93%81%E7%AB%99)&zoom=10.15', '360.com:8080/vue/#/a=1&b=2'], // https://baike.baidu.com/item/%E9%A1%B6%E7%BA%A7%E5%9F%9F%E5%90%8D#7
// 也参考谷歌浏览器的地址栏, 如果输入非字母不会被识别为域名
title: '网址(URL)',
rule: /^(((ht|f)tps?):\/\/)?([^!@#$%^&*?.\s-]([^!@#$%^&*?.\s]{0,63}[^!@#$%^&*?.\s])?\.)+[a-z]{2,6}\/?/,
examples: ['www.qq.com', 'https://vuejs.org/v2/api/#v-model', 'www.qq.99', '//www.qq.com', 'www.腾讯.cs', 'ftp://baidu.qq', 'http://baidu.com', 'https://www.amap.com/search?id=BV10060895&city=420111&geoobj=113.207951%7C29.992557%7C115.785782%7C31.204369&query_type=IDQ&query=%E5%85%89%E8%B0%B7%E5%B9%BF%E5%9C%BA(%E5%9C%B0%E9%93%81%E7%AB%99)&zoom=10.15', '360.com:8080/vue/#/a=1&b=2'],
counterExamples: ['....'] counterExamples: ['....']
}, },
{ {
@ -48,9 +52,9 @@ module.exports = [{
examples: ['magnet:?xt=urn:btih:40A89A6F4FB1498A98087109D012A9A851FBE0FC'], examples: ['magnet:?xt=urn:btih:40A89A6F4FB1498A98087109D012A9A851FBE0FC'],
}, },
{ {
title: '子网掩码', title: '子网掩码(不包含 0.0.0.0)',
rule: /^(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){3}$/, rule: /^(254|252|248|240|224|192|128)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(255|254|252|248|240|224|192|128|0)$/,
examples: ['255.255.255.0', '255.224.0.0'] examples: ['255.255.255.0', '255.255.255.255', '255.240.0.0']
}, },
{ {
title: 'linux"隐藏文件"路径', title: 'linux"隐藏文件"路径',
@ -60,7 +64,7 @@ module.exports = [{
{ {
title: 'linux文件夹路径', title: 'linux文件夹路径',
rule: /^\/(?:[^/]+\/)*$/, rule: /^\/(?:[^/]+\/)*$/,
examples: ['/usr/ad/dd/', '/', '/root/'] examples: ['/usr/ad/dd/', '/', '/root/', '/ a a / a / a a /']
}, },
{ {
title: 'linux文件路径', title: 'linux文件路径',
@ -94,7 +98,7 @@ module.exports = [{
}, },
{ {
title: 'md5格式(32位)', title: 'md5格式(32位)',
rule: /^([a-f\d]{32}|[A-F\d]{32})$/, rule: /^[a-fA-F0-9]{32}$/,
examples: ['21fe181c5bfc16306a6828c1f7b762e8'], examples: ['21fe181c5bfc16306a6828c1f7b762e8'],
}, },
{ {
@ -135,14 +139,9 @@ module.exports = [{
}, },
{ {
title: '数字/货币金额(支持负数、千分位分隔符)', title: '数字/货币金额(支持负数、千分位分隔符)',
rule: /^-?\d+(,\d{3})*(\.\d{1,2})?$/, rule: /^-?\d{1,3}(,\d{3})*(\.\d{1,2})?$/ ,
examples: [100, -0.99, 3, 234.32, -1, 900, 235.09, '12,345,678.90'] examples: [100, -0.99, 3, 234.32, -1, 900, 235.09, '12,345,678.90']
}, },
{
title: '数字/货币金额 (只支持正数、不支持校验千分位分隔符)',
rule: /(?:^[1-9]([0-9]+)?(?:\.[0-9]{1,2})?$)|(?:^(?:0)$)|(?:^[0-9]\.[0-9](?:[0-9])?$)/,
examples: [0.99, 8.99, 666]
},
{ {
title: '银行卡号10到30位, 覆盖对公/私账户, 参考[微信支付](https://pay.weixin.qq.com/wiki/doc/api/xiaowei.php?chapter=22_1)', title: '银行卡号10到30位, 覆盖对公/私账户, 参考[微信支付](https://pay.weixin.qq.com/wiki/doc/api/xiaowei.php?chapter=22_1)',
rule: /^[1-9]\d{9,29}$/, rule: /^[1-9]\d{9,29}$/,
@ -160,8 +159,8 @@ module.exports = [{
}, },
{ {
title: '车牌号(新能源)', title: '车牌号(新能源)',
rule: /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z](?:((\d{5}[A-HJK])|([A-HJK][A-HJ-NP-Z0-9][0-9]{4}))|[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳])$/, rule: /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z](([DF]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[DF]))$/,
examples: ['京AD92035', '甘G23459F', '京AA92035'], examples: ['京AD92035', '甘G23459F', '京A19203D'],
}, },
{ {
title: '车牌号(非新能源)', title: '车牌号(非新能源)',
@ -175,9 +174,9 @@ module.exports = [{
counterExamples: ['宁AD1234555555', '浙苏H6F681'] counterExamples: ['宁AD1234555555', '浙苏H6F681']
}, },
{ {
title: '手机号(mobile phone)中国(严谨), 根据工信部2019年最新公布的手机号段', title: '手机号(mobile phone)中国(严谨), 根据工信部最新公布的手机号段',
rule: /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/, rule: /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[01256789]))\d{8}$/,
examples: ['008618311006933', '+8617888829981', '19119255642'] examples: ['008618311006933', '+8617888829981', '19119255642', '19519255642']
}, },
{ {
title: '手机号(mobile phone)中国(宽松), 只要是13,14,15,16,17,18,19开头即可', title: '手机号(mobile phone)中国(宽松), 只要是13,14,15,16,17,18,19开头即可',
@ -190,11 +189,32 @@ module.exports = [{
examples: ['008618311006933', '+8617888829981', '19119255642'] examples: ['008618311006933', '+8617888829981', '19119255642']
}, },
{ {
title: 'date(日期)', title: '日期(宽松)',
rule: /^\d{1,4}(-)(1[0-2]|0?[1-9])\1(0?[1-9]|[1-2]\d|30|31)$/, rule: /^\d{1,4}(-)(1[0-2]|0?[1-9])\1(0?[1-9]|[1-2]\d|30|31)$/,
examples: ['1990-12-12', '1-1-1', '0000-1-1'], examples: ['1990-12-12', '1-1-1', '0000-1-1'],
counterExamples: ['2020-00-01'] counterExamples: ['2020-00-01']
}, },
{
title: '日期(严谨, 支持闰年判断)',
rule: /^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$/,
examples: ['1990-12-12', '2000-02-29'],
counterExamples: ['2021-02-29']
},
{
title: '中国省',
rule: /^浙江|上海|北京|天津|重庆|黑龙江|吉林|辽宁|内蒙古|河北|新疆|甘肃|青海|陕西|宁夏|河南|山东|山西|安徽|湖北|湖南|江苏|四川|贵州|云南|广西|西藏|江西|广东|福建|台湾|海南|香港|澳门$/,
examples: ['浙江', '台湾'],
counterExamples: ['哈尔滨']
},
{
title: '可以被moment转化成功的时间 YYYYMMDD HH:mm:ss',
rule: /^\d{4}([/:-\S])(1[0-2]|0?[1-9])\1(0?[1-9]|[1-2]\d|30|31) (?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$/,
examples: ['2020/01/01 23:59:59', '2020-01-01 00:00:00', '20200101 11:11:11'],
counterExamples: ['2020/00/01 23:59:59', '2020-01/01 23:59:59', '2020-01-01 23:59:61', '2020-01-0100:00:00',]
},
{ {
title: 'email(邮箱)', title: 'email(邮箱)',
rule: /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/, rule: /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
@ -239,13 +259,13 @@ module.exports = [{
examples: ['正则', '前端'] examples: ['正则', '前端']
}, },
{ {
title: '小数', title: '小数(支持科学计数)',
rule: /^\d+\.\d+$/, rule: /^[+-]?(\d+([.]\d*)?([eE][+-]?\d+)?|[.]\d+([eE][+-]?\d+)?)$/,
examples: ['0.0', '0.09'] examples: ['0.0', '0.09','4E+4']
}, },
{ {
title: '数字', title: '只包含数字',
rule: /^\d{1,}$/, rule: /^\d+$/,
examples: [12345678] examples: [12345678]
}, },
{ {
@ -253,6 +273,13 @@ module.exports = [{
rule: /<(\w+)[^>]*>(.*?<\/\1>)?/, rule: /<(\w+)[^>]*>(.*?<\/\1>)?/,
examples: ['<div id="app"> 2333 </div>', '<input type="text">', '<br>'] examples: ['<div id="app"> 2333 </div>', '<input type="text">', '<br>']
}, },
{
title: '匹配中文汉字和中文标点',
rule: /[\u4e00-\u9fa5|\u3002|\uff1f|\uff01|\uff0c|\u3001|\uff1b|\uff1a|\u201c|\u201d|\u2018|\u2019|\uff08|\uff09|\u300a|\u300b|\u3008|\u3009|\u3010|\u3011|\u300e|\u300f|\u300c|\u300d|\ufe43|\ufe44|\u3014|\u3015|\u2026|\u2014|\uff5e|\ufe4f|\uffe5]/,
examples: ["匹配中文汉字以及中文标点符号 。 “ ” ' 《 》 〈 〉 【 】 『 』 「 」 ﹃ ﹄ … — ¥"]
},
{ {
title: 'qq号格式正确', title: 'qq号格式正确',
rule: /^[1-9][0-9]{4,10}$/, rule: /^[1-9][0-9]{4,10}$/,
@ -285,7 +312,7 @@ module.exports = [{
}, },
{ {
title: '用户名校验4到16位字母数字下划线减号', title: '用户名校验4到16位字母数字下划线减号',
rule: /^[a-zA-Z0-9_-]{4,16}$/, rule: /^[\w-]{4,16}$/,
examples: ['xiaohua_qq'] examples: ['xiaohua_qq']
}, },
{ {
@ -295,13 +322,13 @@ module.exports = [{
}, },
{ {
title: 'ip-v6[:端口]', title: 'ip-v6[:端口]',
rule: /^(?:(?:(?:[0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))|\[(?:(?:(?:[0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))\](?::(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$/i, rule: /(^(?:(?:(?:[0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$)|(^\[(?:(?:(?:[0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))\](?::(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$)/i,
examples: ['2031:0000:130f:0000:0000:09c0:876a:130b', '[2031:0000:130f:0000:0000:09c0:876a:130b]:8080'] examples: ['2031:0000:130f:0000:0000:09c0:876a:130b', '[2031:0000:130f:0000:0000:09c0:876a:130b]:8080']
}, },
{ {
title: '16进制颜色', title: '16进制颜色',
rule: /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/, rule: /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3}|[a-fA-F0-9]{8}|[a-fA-F0-9]{4})$/,
examples: ['#f00', '#F90', '#000', '#fe9de8'] examples: ['#f00', '#F90', '#000', '#fe9de8', '#f8f8f8ff', '#f003']
}, },
{ {
title: '微信号(wx)6至20位以字母开头字母数字减号下划线', title: '微信号(wx)6至20位以字母开头字母数字减号下划线',
@ -330,7 +357,7 @@ module.exports = [{
}, },
{ {
title: 'mac地址', title: 'mac地址',
rule: /^((([a-f0-9]{2}:){5})|(([a-f0-9]{2}-){5}))[a-f0-9]{2}$/i, rule: /^(([a-f0-9][0,2,4,6,8,a,c,e]:([a-f0-9]{2}:){4})|([a-f0-9][0,2,4,6,8,a,c,e]-([a-f0-9]{2}-){4}))[a-f0-9]{2}$/i,
examples: ['38:f9:d3:4b:f5:51', '00-0C-29-CA-E4-66'] examples: ['38:f9:d3:4b:f5:51', '00-0C-29-CA-E4-66']
}, },
{ {
@ -349,8 +376,10 @@ module.exports = [{
examples: ['K034169(1)'] examples: ['K034169(1)']
}, },
{ {
// 参考:
// https://baike.baidu.com/item/%E6%BE%B3%E9%97%A8%E5%B1%85%E6%B0%91%E8%BA%AB%E4%BB%BD%E8%AF%81/12509098?fr=aladdin#5
title: '澳门身份证 ', title: '澳门身份证 ',
rule: /^[1|5|7]\d{6}[(\d)]{3}$/, rule: /^[1|5|7]\d{6}\(\d\)$/,
examples: ['5686611(1)'] examples: ['5686611(1)']
}, },
{ {
@ -358,6 +387,16 @@ module.exports = [{
rule: /^[a-zA-Z][0-9]{9}$/, rule: /^[a-zA-Z][0-9]{9}$/,
examples: ['U193683453'] examples: ['U193683453']
}, },
{
title: '大写字母,小写字母,数字,特殊符号 `@#$%^&*`~()-+=` 中任意3项密码',
rule: /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\W_!@#$%^&*`~()-+=]+$)(?![0-9\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\W_!@#$%^&*`~()-+=]/,
examples: ['a1@', 'A1@', 'Aa@']
},
{
title: 'ASCII码表中的全部的特殊字符',
rule: /[\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]+/,
examples: ["[", ".", "^", "&3%"]
},
{ {
title: '正整数不包含0', title: '正整数不包含0',
rule: /^\+?[1-9]\d*$/, rule: /^\+?[1-9]\d*$/,
@ -370,17 +409,49 @@ module.exports = [{
}, },
{ {
title: '整数', title: '整数',
rule: /^-?[0-9]\d*$/, rule: /^(?:0|(?:-?[1-9]\d*))$/,
examples: [-1231, 123] examples: [-1231, 123, 0],
counterExamples: ['01']
}, },
{ {
title: '浮点数', title: '浮点数',
rule: /^(-?\d+)(\.\d+)?$/, rule: /^(-?[1-9]\d*\.\d+|-?0\.\d*[1-9]\d*|0\.0+)$/,
examples: [1.5] examples: ["1.23", "-1.01", "0.00"]
// allow "1.23", allow "-0.1", allow "0.00", ban "-0.00", ban "2.", allow "2.0"
},
{
title: '浮点数(严格)',
rule: /^(-?[1-9]\d*\.\d+|-?0\.\d*[1-9])$/,
examples: ["1.23", "-1.01"]
// allow "1.23", allow "-0.1", ban "2.", ban "2.0"
}, },
{ {
title: 'email(支持中文邮箱)', title: 'email(支持中文邮箱)',
rule: /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/, rule: /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/,
examples: ['90203918@qq.com', 'nbilly@126.com', '啦啦啦@126.com'] examples: ['90203918@qq.com', 'nbilly@126.com', '啦啦啦@126.com']
} },
{
title: '域名(非网址, 不包含协议)',
rule: /^([0-9a-zA-Z-]{1,}\.)+([a-zA-Z]{2,})$/,
examples: ['www.baidu.com',
'baidu.com',
'baidu.com.cn',
'api.baidu.com',
'nodejs.org',
'nodejs.cn'],
counterExamples: ['http://baidu.com', 'https://baidu.com', 'www.百度.com']
},
{
title: '军官/士兵证',
rule: /^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$/,
examples: ['军字第2001988号', '士字第P011816X号'],
},
{
title: '户口薄',
rule: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,
examples: ['441421999707223115'],
},
]; ];

View File

@ -1,5 +1,5 @@
module.exports = { module.exports = {
publicPath: process.env.NODE_ENV === 'production' // publicPath: process.env.NODE_ENV === 'production'
? '/any-rule/' // ? '/any-rule/'
: '/' // : '/'
} }

File diff suppressed because it is too large Load Diff

View File

@ -27,7 +27,7 @@ let content = `# 正则大全 ${badges.join(' ')}
🦕支持**web** / **vscode** / **idea** / **Alfred Workflow** 🦕支持**web** / **vscode** / **idea** / **Alfred Workflow**
## :rocket:web版本 ## :rocket:web版本
https://any86.github.io/any-rule/ https://any-rule.vercel.app/
## 🍭vscode插件 ## 🍭vscode插件
@ -40,40 +40,48 @@ vscode应用商店中搜索"**any-rule**".
1. **F1**(mac下fn+F1)打开正则列表. 1. **F1**(mac下fn+F1)打开正则列表.
2. **输入关键词搜索**, 比如"手机". 2. **输入关键词搜索**, 比如"手机".
![预览图](https://user-gold-cdn.xitu.io/2020/1/10/16f8e01a684a0a18?w=420&h=243&f=gif&s=414162) ![GIF](https://user-images.githubusercontent.com/8264787/146724787-888a8666-5d2a-4e5e-b383-aec7c53bd312.gif)
**方式2:** **方式2:**
右键选择"🦕正则大全". 右键选择"🦕正则大全".
![](https://user-gold-cdn.xitu.io/2020/2/28/17087735718cca3b?w=389&h=400&f=png&s=55934) ![GIF](https://user-images.githubusercontent.com/8264787/146725447-4d92caed-2dd0-4f11-91d1-8da9cd8ff08b.gif)
**方式3:** **方式3:**
在代码任意位置输入"**@zz**". 在代码任意位置输入"**@zz**".
![GIF](https://user-images.githubusercontent.com/8264787/146725402-30b34119-b709-4d49-adb2-af8dbb786d3b.gif)
![预览图](https://user-gold-cdn.xitu.io/2020/2/28/17089999afc7a21c?w=722&h=408&f=gif&s=299355)
## 👩🏫图解正则 ## 👩🏫图解正则
<details> <details>
<summary>查看详情</summary> <summary>查看详情</summary>
每次在any-rule中选择正则后会弹出提示, 可点击"🤖图解正则". 每次在any-rule中选择正则后会弹出提示, 可点击"🤖图解正则".
![预览图](https://user-gold-cdn.xitu.io/2020/2/23/1706e32c3a6fb116?w=533&h=95&f=png&s=21563) ![image](https://user-images.githubusercontent.com/8264787/146726200-d97e48c3-df76-4531-8210-b6935fffb997.png)
点击后可以看到正则解析, 方便大家学习. 点击后可以看到正则解析, 方便大家学习.
![预览图](https://user-gold-cdn.xitu.io/2020/2/23/1706e349b600c28b?w=1151&h=500&f=png&s=45210) ![image](https://user-images.githubusercontent.com/8264787/146726350-58166bf9-7f7f-4685-86aa-f055d0c0b914.png)
**注意**: 图解直接使用了https://regexper.com, 在此对作者表示敬意和感谢. **注意**: 图解直接使用了https://regexper.com, 在此对作者表示敬意和感谢.
</details> </details>
## 社区版本 ## 社区版本
社区版本非本人维护, 只是其他开发者使用了any-rule整理的正则内容, 如使用出现问题可直接与其开发者联系.
[idea版](https://github.com/zhoriya/idea-rule) [idea版](https://github.com/zhoriya/idea-rule)
[Alfred Workflow版](https://github.com/cccyb/workflows) [Alfred Workflow版](https://github.com/cccyb/workflows)
[hyjs: 函数封装版](https://github.com/heiyehk/hyjs/tree/main/packages/utils)
[命令行版本](https://github.com/shenguanjiejie/workwork)
[uTools版本](https://github.com/trentlee0/utools-any-rule)
## :fire:关于PR ## :fire:关于PR
欢迎大家PR, 步骤如下: 欢迎大家PR, 步骤如下:
1. **正则**请在**packages/www/src/RULES.js**中添加. 1. **正则**请在**packages/www/src/RULES.js**中添加.