Compare commits

..

No commits in common. "master" and "v0.3.12" have entirely different histories.

12 changed files with 27719 additions and 747 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@2.4.2 - run: yarn add chalk

View File

@ -1,19 +1,6 @@
# 更新日志 # 更新日志
🚀 [提交问题](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)
- 修复网址中带有"()"不能通过. - 修复网址中带有"()"不能通过.
- 新增"整数"/"浮点数"等正则. - 新增"整数"/"浮点数"等正则.

927
README.md
View File

@ -1,490 +1,437 @@
# 正则大全 ![已收录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) # 正则大全 ![已收录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)
🦕支持**web** / **vscode** / **idea** / **Alfred Workflow**多平台 🦕支持**web** / **vscode** / **idea** / **Alfred Workflow**多平台
## :rocket:web版本 ## :rocket:web版本
https://any-rule.vercel.app/ https://any86.github.io/any-rule/
## 🍭vscode插件 ## 🍭vscode插件
### 安装 ### 安装
vscode应用商店中搜索"**any-rule**". vscode应用商店中搜索"**any-rule**".
### 使用 ### 使用
**方式1:** **方式1:**
1. 按**F1**(mac下fn+F1)打开正则列表. 1. 按**F1**(mac下fn+F1)打开正则列表.
2. **输入关键词搜索**, 比如"手机". 2. **输入关键词搜索**, 比如"手机".
![GIF](https://user-images.githubusercontent.com/8264787/146724787-888a8666-5d2a-4e5e-b383-aec7c53bd312.gif) ![预览图](https://user-gold-cdn.xitu.io/2020/1/10/16f8e01a684a0a18?w=420&h=243&f=gif&s=414162)
**方式2:** **方式2:**
右键选择"🦕正则大全". 右键选择"🦕正则大全".
![GIF](https://user-images.githubusercontent.com/8264787/146725447-4d92caed-2dd0-4f11-91d1-8da9cd8ff08b.gif) ![](https://user-gold-cdn.xitu.io/2020/2/28/17087735718cca3b?w=389&h=400&f=png&s=55934)
**方式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> ## 👩‍🏫图解正则
<summary>查看详情</summary> <details>
每次在any-rule中选择正则后会弹出提示, 可点击"🤖图解正则". <summary>查看详情</summary>
每次在any-rule中选择正则后会弹出提示, 可点击"🤖图解正则".
![image](https://user-images.githubusercontent.com/8264787/146726200-d97e48c3-df76-4531-8210-b6935fffb997.png)
![预览图](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/146726350-58166bf9-7f7f-4685-86aa-f055d0c0b914.png)
![预览图](https://user-gold-cdn.xitu.io/2020/2/23/1706e349b600c28b?w=1151&h=500&f=png&s=45210)
**注意**: 图解直接使用了https://regexper.com, 在此对作者表示敬意和感谢.
</details> **注意**: 图解直接使用了https://regexper.com, 在此对作者表示敬意和感谢.
</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) ## :fire:关于PR
欢迎大家PR, 步骤如下:
[hyjs: 函数封装版](https://github.com/heiyehk/hyjs/tree/main/packages/utils) 1. **正则**请在**packages/www/src/RULES.js**中添加.
2. 运行`npm run test:rules`进行测试.
[命令行版本](https://github.com/shenguanjiejie/workwork) 3. 运行`npm run build:md`更新**README.md**.
4. 请务必提交到**develop**分支.
[uTools版本](https://github.com/trentlee0/utools-any-rule)
在此感谢大家对**any-rule**做出的贡献!
## :fire:关于PR
欢迎大家PR, 步骤如下: ## 🍔正则
1. **正则**请在**packages/www/src/RULES.js**中添加.
2. 运行`npm run test:rules`进行测试. ### 火车车次
3. 运行`npm run build:md`更新**README.md**. ```javascript
4. 请务必提交到**develop**分支. /^[GCDZTSPKXLY1-9]\d{1,4}$/
```
在此感谢大家对**any-rule**做出的贡献!
### 手机机身码(IMEI)
## 🍔正则 ```javascript
/^\d{15,17}$/
### 火车车次 ```
```javascript
/^[GCDZTSPKXLY1-9]\d{1,4}$/ ### 必须带端口号的网址(或ip)
``` ```javascript
/^((ht|f)tps?:\/\/)?[\w-]+(\.[\w-]+)+:\d{1,5}\/?$/
### 手机机身码(IMEI) ```
```javascript
/^\d{15,17}$/ ### 网址(url,支持端口和"?+参数"和"#+参数)
``` ```javascript
/^(((ht|f)tps?):\/\/)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?$/
### 必须带端口号的网址(或ip) ```
```javascript
/^((ht|f)tps?:\/\/)?[\w-]+(\.[\w-]+)+:\d{1,5}\/?$/ ### 统一社会信用代码
``` ```javascript
/^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/
### 网址(URL) ```
```javascript
/^(((ht|f)tps?):\/\/)?([^!@#$%^&*?.\s-]([^!@#$%^&*?.\s]{0,63}[^!@#$%^&*?.\s])?\.)+[a-z]{2,6}\/?/ ### 统一社会信用代码(宽松匹配)(15位/18位/20位数字/字母)
``` ```javascript
/^(([0-9A-Za-z]{15})|([0-9A-Za-z]{18})|([0-9A-Za-z]{20}))$/
### 统一社会信用代码 ```
```javascript
/^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/ ### 迅雷链接
``` ```javascript
/^thunderx?:\/\/[a-zA-Z\d]+=$/
### 统一社会信用代码(宽松匹配)(15位/18位/20位数字/字母) ```
```javascript
/^(([0-9A-Za-z]{15})|([0-9A-Za-z]{18})|([0-9A-Za-z]{20}))$/ ### ed2k链接(宽松匹配)
``` ```javascript
/^ed2k:\/\/\|file\|.+\|\/$/
### 迅雷链接 ```
```javascript
/^thunderx?:\/\/[a-zA-Z\d]+=$/ ### 磁力链接(宽松匹配)
``` ```javascript
/^magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.*$/
### ed2k链接(宽松匹配) ```
```javascript
/^ed2k:\/\/\|file\|.+\|\/$/ ### 子网掩码
``` ```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}$/
### 磁力链接(宽松匹配) ```
```javascript
/^magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.*$/ ### linux"隐藏文件"路径
``` ```javascript
/^\/(?:[^/]+\/)*\.[^/]*/
### 子网掩码(不包含 0.0.0.0) ```
```javascript
/^(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文件夹路径
``` ```javascript
/^\/(?:[^/]+\/)*$/
### linux"隐藏文件"路径 ```
```javascript
/^\/(?:[^/]+\/)*\.[^/]*/ ### linux文件路径
``` ```javascript
/^\/(?:[^/]+\/)*[^/]+$/
### linux文件夹路径 ```
```javascript
/^\/(?:[^/]+\/)*$/ ### window"文件夹"路径
``` ```javascript
/^[a-zA-Z]:\\(?:\w+\\?)*$/
### linux文件路径 ```
```javascript
/^\/(?:[^/]+\/)*[^/]+$/ ### window下"文件"路径
``` ```javascript
/^[a-zA-Z]:\\(?:\w+\\)*\w+\.\w+$/
### window"文件夹"路径 ```
```javascript
/^[a-zA-Z]:\\(?:\w+\\?)*$/ ### 股票代码(A股)
``` ```javascript
/^(s[hz]|S[HZ])(000[\d]{3}|002[\d]{3}|300[\d]{3}|600[\d]{3}|60[\d]{4})$/
### window下"文件"路径 ```
```javascript
/^[a-zA-Z]:\\(?:\w+\\)*\w+\.\w+$/ ### 大于等于0, 小于等于150, 支持小数位出现5, 如145.5, 用于判断考卷分数
``` ```javascript
/^150$|^(?:\d|[1-9]\d|1[0-4]\d)(?:\.5)?$/
### 股票代码(A股) ```
```javascript
/^(s[hz]|S[HZ])(000[\d]{3}|002[\d]{3}|300[\d]{3}|600[\d]{3}|60[\d]{4})$/ ### html注释
``` ```javascript
/<!--[\s\S]*?-->/g
### 大于等于0, 小于等于150, 支持小数位出现5, 如145.5, 用于判断考卷分数 ```
```javascript
/^150$|^(?:\d|[1-9]\d|1[0-4]\d)(?:\.5)?$/ ### md5格式(32位)
``` ```javascript
/^([a-f\d]{32}|[A-F\d]{32})$/
### html注释 ```
```javascript
/<!--[\s\S]*?-->/g ### GUID/UUID
``` ```javascript
/^[a-f\d]{4}(?:[a-f\d]{4}-){4}[a-f\d]{12}$/i
### md5格式(32位) ```
```javascript
/^[a-fA-F0-9]{32}$/ ### 版本号(version)格式必须为X.Y.Z
``` ```javascript
/^\d+(?:\.\d+){2}$/
### GUID/UUID ```
```javascript
/^[a-f\d]{4}(?:[a-f\d]{4}-){4}[a-f\d]{12}$/i ### 视频(video)链接地址(视频格式可按需增删)
``` ```javascript
/^https?:\/\/(.+\/)+.+(\.(swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4))$/i
### 版本号(version)格式必须为X.Y.Z ```
```javascript
/^\d+(?:\.\d+){2}$/ ### 图片(image)链接地址(图片格式可按需增删)
``` ```javascript
/^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i
### 视频(video)链接地址(视频格式可按需增删) ```
```javascript
/^https?:\/\/(.+\/)+.+(\.(swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4))$/i ### 24小时制时间HH:mm:ss
``` ```javascript
/^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$/
### 图片(image)链接地址(图片格式可按需增删) ```
```javascript
/^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i ### 12小时制时间hh:mm:ss
``` ```javascript
/^(?:1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$/
### 24小时制时间HH:mm:ss ```
```javascript
/^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$/ ### base64格式
``` ```javascript
/^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$/i
### 12小时制时间hh:mm:ss ```
```javascript
/^(?:1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$/ ### 数字/货币金额(支持负数、千分位分隔符)
``` ```javascript
/^-?\d+(,\d{3})*(\.\d{1,2})?$/
### base64格式 ```
```javascript
/^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$/i ### 数字/货币金额 (只支持正数、不支持校验千分位分隔符)
``` ```javascript
/(?:^[1-9]([0-9]+)?(?:\.[0-9]{1,2})?$)|(?:^(?:0)$)|(?:^[0-9]\.[0-9](?:[0-9])?$)/
### 数字/货币金额(支持负数、千分位分隔符) ```
```javascript
/^-?\d{1,3}(,\d{3})*(\.\d{1,2})?$/ ### 银行卡号10到30位, 覆盖对公/私账户, 参考[微信支付](https://pay.weixin.qq.com/wiki/doc/api/xiaowei.php?chapter=22_1)
``` ```javascript
/^[1-9]\d{9,29}$/
### 银行卡号10到30位, 覆盖对公/私账户, 参考[微信支付](https://pay.weixin.qq.com/wiki/doc/api/xiaowei.php?chapter=22_1) ```
```javascript
/^[1-9]\d{9,29}$/ ### 中文姓名
``` ```javascript
/^(?:[\u4e00-\u9fa5·]{2,16})$/
### 中文姓名 ```
```javascript
/^(?:[\u4e00-\u9fa5·]{2,16})$/ ### 英文姓名
``` ```javascript
/(^[a-zA-Z][a-zA-Z\s]{0,20}[a-zA-Z]$)/
### 英文姓名 ```
```javascript
/(^[a-zA-Z][a-zA-Z\s]{0,20}[a-zA-Z]$)/ ### 车牌号(新能源)
``` ```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挂学警港澳])$/
### 车牌号(新能源) ```
```javascript
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z](([DF]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[DF]))$/ ### 车牌号(非新能源)
``` ```javascript
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$/
### 车牌号(非新能源) ```
```javascript
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$/ ### 车牌号(新能源+非新能源)
``` ```javascript
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/
### 车牌号(新能源+非新能源) ```
```javascript
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/ ### 手机号(mobile phone)中国(严谨), 根据工信部2019年最新公布的手机号段
``` ```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}$/
### 手机号(mobile phone)中国(严谨), 根据工信部2019年最新公布的手机号段 ```
```javascript
/^(?:(?:\+|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开头即可
``` ```javascript
/^(?:(?:\+|00)86)?1[3-9]\d{9}$/
### 手机号(mobile phone)中国(宽松), 只要是13,14,15,16,17,18,19开头即可 ```
```javascript
/^(?:(?:\+|00)86)?1[3-9]\d{9}$/ ### 手机号(mobile phone)中国(最宽松), 只要是1开头即可, 如果你的手机号是用来接收短信, 优先建议选择这一条
``` ```javascript
/^(?:(?:\+|00)86)?1\d{10}$/
### 手机号(mobile phone)中国(最宽松), 只要是1开头即可, 如果你的手机号是用来接收短信, 优先建议选择这一条 ```
```javascript
/^(?:(?:\+|00)86)?1\d{10}$/ ### date(日期)
``` ```javascript
/^\d{1,4}(-)(1[0-2]|0?[1-9])\1(0?[1-9]|[1-2]\d|30|31)$/
### 日期(宽松) ```
```javascript
/^\d{1,4}(-)(1[0-2]|0?[1-9])\1(0?[1-9]|[1-2]\d|30|31)$/ ### email(邮箱)
``` ```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,}))$/
### 日期(严谨, 支持闰年判断) ```
```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)$/ ### 座机(tel phone)电话(国内),如: 0341-86091234
``` ```javascript
/^(?:(?:\d{3}-)?\d{8}|^(?:\d{4}-)?\d{7,8})(?:-\d+)?$/
### 中国省 ```
```javascript
/^浙江|上海|北京|天津|重庆|黑龙江|吉林|辽宁|内蒙古|河北|新疆|甘肃|青海|陕西|宁夏|河南|山东|山西|安徽|湖北|湖南|江苏|四川|贵州|云南|广西|西藏|江西|广东|福建|台湾|海南|香港|澳门$/ ### 身份证号(1代,15位数字)
``` ```javascript
/^[1-9]\d{7}(?:0\d|10|11|12)(?:0[1-9]|[1-2][\d]|30|31)\d{3}$/
### 可以被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$/ ### 身份证号(2代,18位数字),最后一位是校验位,可能为数字或字符X
``` ```javascript
/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/
### email(邮箱) ```
```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,}))$/ ### 身份证号, 支持1/2代(15位/18位数字)
``` ```javascript
/^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/
### 座机(tel phone)电话(国内),如: 0341-86091234 ```
```javascript
/^(?:(?:\d{3}-)?\d{8}|^(?:\d{4}-)?\d{7,8})(?:-\d+)?$/ ### 护照(包含香港、澳门)
``` ```javascript
/(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/
### 身份证号(1代,15位数字) ```
```javascript
/^[1-9]\d{7}(?:0\d|10|11|12)(?:0[1-9]|[1-2][\d]|30|31)\d{3}$/ ### 帐号是否合法(字母开头允许5-16字节允许字母数字下划线组合
``` ```javascript
/^[a-zA-Z]\w{4,15}$/
### 身份证号(2代,18位数字),最后一位是校验位,可能为数字或字符X ```
```javascript
/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/ ### 中文/汉字
``` ```javascript
/^(?:[\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])+$/
### 身份证号, 支持1/2代(15位/18位数字) ```
```javascript
/^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/ ### 小数
``` ```javascript
/^\d+\.\d+$/
### 护照(包含香港、澳门) ```
```javascript
/(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/ ### 数字
``` ```javascript
/^\d{1,}$/
### 帐号是否合法(字母开头允许5-16字节允许字母数字下划线组合 ```
```javascript
/^[a-zA-Z]\w{4,15}$/ ### html标签(宽松匹配)
``` ```javascript
/<(\w+)[^>]*>(.*?<\/\1>)?/
### 中文/汉字 ```
```javascript
/^(?:[\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])+$/ ### qq号格式正确
``` ```javascript
/^[1-9][0-9]{4,10}$/
### 小数(支持科学计数) ```
```javascript
/^[+-]?(\d+([.]\d*)?([eE][+-]?\d+)?|[.]\d+([eE][+-]?\d+)?)$/ ### 数字和字母组成
``` ```javascript
/^[A-Za-z0-9]+$/
### 只包含数字 ```
```javascript
/^\d+$/ ### 英文字母
``` ```javascript
/^[a-zA-Z]+$/
### html标签(宽松匹配) ```
```javascript
/<(\w+)[^>]*>(.*?<\/\1>)?/ ### 小写英文字母组成
``` ```javascript
/^[a-z]+$/
### 匹配中文汉字和中文标点 ```
```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]/ ### 大写英文字母
``` ```javascript
/^[A-Z]+$/
### qq号格式正确 ```
```javascript
/^[1-9][0-9]{4,10}$/ ### 密码强度校验最少6位包括至少1个大写字母1个小写字母1个数字1个特殊字符
``` ```javascript
/^\S*(?=\S{6,})(?=\S*\d)(?=\S*[A-Z])(?=\S*[a-z])(?=\S*[!@#$%^&*? ])\S*$/
### 数字和字母组成 ```
```javascript
/^[A-Za-z0-9]+$/ ### 用户名校验4到16位字母数字下划线减号
``` ```javascript
/^[a-zA-Z0-9_-]{4,16}$/
### 英文字母 ```
```javascript
/^[a-zA-Z]+$/ ### ip-v4[:端口]
``` ```javascript
/^((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])(?::(?:[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]))?$/
### 小写英文字母组成 ```
```javascript
/^[a-z]+$/ ### ip-v6[:端口]
``` ```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
### 大写英文字母 ```
```javascript
/^[A-Z]+$/ ### 16进制颜色
``` ```javascript
/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
### 密码强度校验最少6位包括至少1个大写字母1个小写字母1个数字1个特殊字符 ```
```javascript
/^\S*(?=\S{6,})(?=\S*\d)(?=\S*[A-Z])(?=\S*[a-z])(?=\S*[!@#$%^&*? ])\S*$/ ### 微信号(wx)6至20位以字母开头字母数字减号下划线
``` ```javascript
/^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/
### 用户名校验4到16位字母数字下划线减号 ```
```javascript
/^[\w-]{4,16}$/ ### 邮政编码(中国)
``` ```javascript
/^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/
### ip-v4[:端口] ```
```javascript
/^((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])(?::(?:[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]))?$/ ### 中文和数字
``` ```javascript
/^((?:[\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])|(\d))+$/
### ip-v6[:端口] ```
```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 ### 不能包含字母
``` ```javascript
/^[^A-Za-z]*$/
### 16进制颜色 ```
```javascript
/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3}|[a-fA-F0-9]{8}|[a-fA-F0-9]{4})$/ ### java包名
``` ```javascript
/^([a-zA-Z_]\w*)+([.][a-zA-Z_]\w*)+$/
### 微信号(wx)6至20位以字母开头字母数字减号下划线 ```
```javascript
/^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/ ### mac地址
``` ```javascript
/^((([a-f0-9]{2}:){5})|(([a-f0-9]{2}-){5}))[a-f0-9]{2}$/i
### 邮政编码(中国) ```
```javascript
/^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/ ### 匹配连续重复的字符
``` ```javascript
/(.)\1+/
### 中文和数字 ```
```javascript
/^((?:[\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])|(\d))+$/ ### 数字和英文字母组成,并且同时含有数字和英文字母
``` ```javascript
/^(?=.*[a-zA-Z])(?=.*\d).+$/
### 不能包含字母 ```
```javascript
/^[^A-Za-z]*$/ ### 香港身份证
``` ```javascript
/^[a-zA-Z]\d{6}\([\dA]\)$/
### java包名 ```
```javascript
/^([a-zA-Z_]\w*)+([.][a-zA-Z_]\w*)+$/ ### 澳门身份证
``` ```javascript
/^[1|5|7]\d{6}[(\d)]{3}$/
### mac地址 ```
```javascript
/^(([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 ### 台湾身份证
``` ```javascript
/^[a-zA-Z][0-9]{9}$/
### 匹配连续重复的字符 ```
```javascript
/(.)\1+/ ### 正整数不包含0
``` ```javascript
/^\+?[1-9]\d*$/
### 数字和英文字母组成,并且同时含有数字和英文字母 ```
```javascript
/^(?=.*[a-zA-Z])(?=.*\d).+$/ ### 负整数不包含0
``` ```javascript
/^-[1-9]\d*$/
### 香港身份证 ```
```javascript
/^[a-zA-Z]\d{6}\([\dA]\)$/ ### 整数
``` ```javascript
/^-?[0-9]\d*$/
### 澳门身份证 ```
```javascript
/^[1|5|7]\d{6}\(\d\)$/ ### 浮点数
``` ```javascript
/^(-?\d+)(\.\d+)?$/
### 台湾身份证 ```
```javascript
/^[a-zA-Z][0-9]{9}$/ ### email(支持中文邮箱)
``` ```javascript
/^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-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
```javascript
/^\+?[1-9]\d*$/
```
### 负整数不包含0
```javascript
/^-[1-9]\d*$/
```
### 整数
```javascript
/^(?:0|(?:-?[1-9]\d*))$/
```
### 浮点数
```javascript
/^(-?[1-9]\d*\.\d+|-?0\.\d*[1-9]\d*|0\.0+)$/
```
### 浮点数(严格)
```javascript
/^(-?[1-9]\d*\.\d+|-?0\.\d*[1-9])$/
```
### email(支持中文邮箱)
```javascript
/^[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 Normal file

File diff suppressed because it is too large Load Diff

View File

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

12198
packages/www/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -6,16 +6,15 @@
"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": "^6.0.0", "node-sass": "^4.13.1",
"sass-loader": "^10.0.0", "sass-loader": "^7.1.0",
"vue": "^2.6.10" "vue": "^2.6.10"
}, },
"devDependencies": { "devDependencies": {

View File

@ -307,10 +307,6 @@ 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,13 +15,9 @@ module.exports = [{
counterExamples: ['192.168.1.1', 'https://www.jd.com'] counterExamples: ['192.168.1.1', 'https://www.jd.com']
}, },
{ {
// 参考: title: '网址(url,支持端口和"?+参数"和"#+参数)',
// https://baike.baidu.com/item/%E9%A1%B6%E7%BA%A7%E5%9F%9F%E5%90%8D#4_1 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#7 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'],
// 也参考谷歌浏览器的地址栏, 如果输入非字母不会被识别为域名
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: ['....']
}, },
{ {
@ -52,9 +48,9 @@ module.exports = [{
examples: ['magnet:?xt=urn:btih:40A89A6F4FB1498A98087109D012A9A851FBE0FC'], examples: ['magnet:?xt=urn:btih:40A89A6F4FB1498A98087109D012A9A851FBE0FC'],
}, },
{ {
title: '子网掩码(不包含 0.0.0.0)', title: '子网掩码',
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)$/, 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}$/,
examples: ['255.255.255.0', '255.255.255.255', '255.240.0.0'] examples: ['255.255.255.0', '255.224.0.0']
}, },
{ {
title: 'linux"隐藏文件"路径', title: 'linux"隐藏文件"路径',
@ -64,7 +60,7 @@ module.exports = [{
{ {
title: 'linux文件夹路径', title: 'linux文件夹路径',
rule: /^\/(?:[^/]+\/)*$/, rule: /^\/(?:[^/]+\/)*$/,
examples: ['/usr/ad/dd/', '/', '/root/', '/ a a / a / a a /'] examples: ['/usr/ad/dd/', '/', '/root/']
}, },
{ {
title: 'linux文件路径', title: 'linux文件路径',
@ -98,7 +94,7 @@ module.exports = [{
}, },
{ {
title: 'md5格式(32位)', title: 'md5格式(32位)',
rule: /^[a-fA-F0-9]{32}$/, rule: /^([a-f\d]{32}|[A-F\d]{32})$/,
examples: ['21fe181c5bfc16306a6828c1f7b762e8'], examples: ['21fe181c5bfc16306a6828c1f7b762e8'],
}, },
{ {
@ -139,9 +135,14 @@ module.exports = [{
}, },
{ {
title: '数字/货币金额(支持负数、千分位分隔符)', title: '数字/货币金额(支持负数、千分位分隔符)',
rule: /^-?\d{1,3}(,\d{3})*(\.\d{1,2})?$/ , rule: /^-?\d+(,\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}$/,
@ -159,8 +160,8 @@ module.exports = [{
}, },
{ {
title: '车牌号(新能源)', title: '车牌号(新能源)',
rule: /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z](([DF]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[DF]))$/, 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挂学警港澳])$/,
examples: ['京AD92035', '甘G23459F', '京A19203D'], examples: ['京AD92035', '甘G23459F', '京AA92035'],
}, },
{ {
title: '车牌号(非新能源)', title: '车牌号(非新能源)',
@ -174,9 +175,9 @@ module.exports = [{
counterExamples: ['宁AD1234555555', '浙苏H6F681'] counterExamples: ['宁AD1234555555', '浙苏H6F681']
}, },
{ {
title: '手机号(mobile phone)中国(严谨), 根据工信部最新公布的手机号段', title: '手机号(mobile phone)中国(严谨), 根据工信部2019年最新公布的手机号段',
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}$/, 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}$/,
examples: ['008618311006933', '+8617888829981', '19119255642', '19519255642'] examples: ['008618311006933', '+8617888829981', '19119255642']
}, },
{ {
title: '手机号(mobile phone)中国(宽松), 只要是13,14,15,16,17,18,19开头即可', title: '手机号(mobile phone)中国(宽松), 只要是13,14,15,16,17,18,19开头即可',
@ -189,32 +190,11 @@ module.exports = [{
examples: ['008618311006933', '+8617888829981', '19119255642'] examples: ['008618311006933', '+8617888829981', '19119255642']
}, },
{ {
title: '日期(宽松)', title: 'date(日期)',
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,}))$/,
@ -240,7 +220,7 @@ module.exports = [{
{ {
title: '身份证号, 支持1/2代(15位/18位数字)', title: '身份证号, 支持1/2代(15位/18位数字)',
rule: /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, rule: /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/,
examples: ['622223199912051311', '12345619991205131x', '123456991010193'] examples: ['622223199912051311','12345619991205131x','123456991010193']
}, },
{ {
title: '护照(包含香港、澳门)', title: '护照(包含香港、澳门)',
@ -259,13 +239,13 @@ module.exports = [{
examples: ['正则', '前端'] examples: ['正则', '前端']
}, },
{ {
title: '小数(支持科学计数)', title: '小数',
rule: /^[+-]?(\d+([.]\d*)?([eE][+-]?\d+)?|[.]\d+([eE][+-]?\d+)?)$/, rule: /^\d+\.\d+$/,
examples: ['0.0', '0.09','4E+4'] examples: ['0.0', '0.09']
}, },
{ {
title: '只包含数字', title: '数字',
rule: /^\d+$/, rule: /^\d{1,}$/,
examples: [12345678] examples: [12345678]
}, },
{ {
@ -273,13 +253,6 @@ 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}$/,
@ -312,7 +285,7 @@ module.exports = [{
}, },
{ {
title: '用户名校验4到16位字母数字下划线减号', title: '用户名校验4到16位字母数字下划线减号',
rule: /^[\w-]{4,16}$/, rule: /^[a-zA-Z0-9_-]{4,16}$/,
examples: ['xiaohua_qq'] examples: ['xiaohua_qq']
}, },
{ {
@ -322,13 +295,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}|[a-fA-F0-9]{8}|[a-fA-F0-9]{4})$/, rule: /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,
examples: ['#f00', '#F90', '#000', '#fe9de8', '#f8f8f8ff', '#f003'] examples: ['#f00', '#F90', '#000', '#fe9de8']
}, },
{ {
title: '微信号(wx)6至20位以字母开头字母数字减号下划线', title: '微信号(wx)6至20位以字母开头字母数字减号下划线',
@ -357,7 +330,7 @@ module.exports = [{
}, },
{ {
title: 'mac地址', title: 'mac地址',
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, rule: /^((([a-f0-9]{2}:){5})|(([a-f0-9]{2}-){5}))[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']
}, },
{ {
@ -376,10 +349,8 @@ 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\)$/, rule: /^[1|5|7]\d{6}[(\d)]{3}$/,
examples: ['5686611(1)'] examples: ['5686611(1)']
}, },
{ {
@ -387,16 +358,6 @@ 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*$/,
@ -409,49 +370,17 @@ module.exports = [{
}, },
{ {
title: '整数', title: '整数',
rule: /^(?:0|(?:-?[1-9]\d*))$/, rule: /^-?[0-9]\d*$/,
examples: [-1231, 123, 0], examples: [-1231, 123]
counterExamples: ['01']
}, },
{ {
title: '浮点数', title: '浮点数',
rule: /^(-?[1-9]\d*\.\d+|-?0\.\d*[1-9]\d*|0\.0+)$/, rule: /^(-?\d+)(\.\d+)?$/,
examples: ["1.23", "-1.01", "0.00"] examples: [1.5]
// 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/'
// : '/' : '/'
} }

8656
packages/www/yarn.lock Normal file

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://any-rule.vercel.app/ https://any86.github.io/any-rule/
## 🍭vscode插件 ## 🍭vscode插件
@ -40,48 +40,40 @@ vscode应用商店中搜索"**any-rule**".
1. **F1**(mac下fn+F1)打开正则列表. 1. **F1**(mac下fn+F1)打开正则列表.
2. **输入关键词搜索**, 比如"手机". 2. **输入关键词搜索**, 比如"手机".
![GIF](https://user-images.githubusercontent.com/8264787/146724787-888a8666-5d2a-4e5e-b383-aec7c53bd312.gif) ![预览图](https://user-gold-cdn.xitu.io/2020/1/10/16f8e01a684a0a18?w=420&h=243&f=gif&s=414162)
**方式2:** **方式2:**
右键选择"🦕正则大全". 右键选择"🦕正则大全".
![GIF](https://user-images.githubusercontent.com/8264787/146725447-4d92caed-2dd0-4f11-91d1-8da9cd8ff08b.gif) ![](https://user-gold-cdn.xitu.io/2020/2/28/17087735718cca3b?w=389&h=400&f=png&s=55934)
**方式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中选择正则后会弹出提示, 可点击"🤖图解正则".
![image](https://user-images.githubusercontent.com/8264787/146726200-d97e48c3-df76-4531-8210-b6935fffb997.png) ![预览图](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/146726350-58166bf9-7f7f-4685-86aa-f055d0c0b914.png) ![预览图](https://user-gold-cdn.xitu.io/2020/2/23/1706e349b600c28b?w=1151&h=500&f=png&s=45210)
**注意**: 图解直接使用了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**中添加.