USEFUL-REGEXP
useful-regexp
Useful regex patterns and functions for easier programming.
The repository is a derivative library of the following projects, designed to provide an API out of the box.
ChinaMobilePhoneNumberRegex
any-rule
:wrench: Getting Started
:card_file_box: Documentation
You can find for more details, API on 📚 Documentation.
:package: Install
useful-regexp was designed to work both in the browser and in Node.js.
Node.js
To get started with useful-regexp in your Node.js project, simply add the dependency with NPM.
$ npm install useful-regexp --save
Then include it in your script:
const regexp = require('useful-regexp');
console.log(regexp.isEmail('muikinghk@yahoo.com.hk'));
Browser
<script src="lib/useful-regexp/index.min.js"></script>
<script>
usefulRegexp.isTel('0341-86091234');
</script>
Typescript
useful-regexp ships with official type declarations for TypeScript in NPM package out of the box.
$ yarn add useful-regexp
# or
$ npm install --save useful-regexp
Import and use in your Typescript file
import { isChineseName } from 'useful-regexp';
const name = '喜塔腊·尔晴';
const isChinese = isChineseName(name);
Variables
Const ACCOUNT
ACCOUNT: RegExp = /^[a-zA-Z]\w{4,15}$/
Const ALPHABET_AND_NUMBER
ALPHABET_AND_NUMBER: RegExp = /^[A-Za-z0-9]+$/
Const A_SHARE_STOCK_CODE
A_SHARE_STOCK_CODE: RegExp = /^(s[hz]|S[HZ])(000[\d]{3}|002[\d]{3}|300[\d]{3}|600[\d]{3}|60[\d]{4})$/
Const BANK_CARD
BANK_CARD: RegExp = /^[1-9]\d{9,29}$/
Const BASE64
BASE64: RegExp = /^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$/i
Const CAPITAL_ENGLISH_ALPHABET
CAPITAL_ENGLISH_ALPHABET: RegExp = /^[A-Z]+$/
Const CHINESE
CHINESE: RegExp = /^(?:[\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])+$/
Const CHINESE_AND_NUMBER
CHINESE_AND_NUMBER: RegExp = /^((?:[\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))+$/
Const CHINESE_NAME
CHINESE_NAME: RegExp = /^(?:[\u4e00-\u9fa5·]{2,16})$/
Const CURRENCY
CURRENCY: RegExp = /(?:^[1-9]([0-9]+)?(?:\.[0-9]{1,2})?$)|(?:^(?:0){1}$)|(?:^[0-9]\.[0-9](?:[0-9])?$)/
Const CURRENCY_SEPARATOR
CURRENCY_SEPARATOR: RegExp = /^-?\d+(,\d{3})*(\.\d{1,2})?$/
Const DATE
DATE: RegExp = /^\d{4}(-)(1[0-2]|0?\d)\1([0-2]\d|\d|30|31)$/
Const DECIMAL
DECIMAL: RegExp = /^[-]?\d+\.\d+$/
Const ED2K_LINK
ED2K_LINK: RegExp = /^ed2k:\/\/\|file\|.+\|\/$/
Const EMAIL
EMAIL: RegExp = /^(([^<>()\[\]\\.,;:\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,}))$/
Const ENGLISH_ALPHABET
ENGLISH_ALPHABET: RegExp = /^[a-zA-Z]+$/
Const ENGLISH_NAME
ENGLISH_NAME: RegExp = /(^[a-zA-Z]{1}[a-zA-Z\s]{0,20}[a-zA-Z]{1}$)/
Const FILE_FOLDER_PATH_LINUX
FILE_FOLDER_PATH_LINUX: RegExp = /^\/(?:[^/]+\/)*$/
Const FILE_FOLDER_PATH_WINDOWS
FILE_FOLDER_PATH_WINDOWS: RegExp = /^[a-zA-Z]:\\(?:\w+\\?)*$/
Const FILE_PATH_LINUX
FILE_PATH_LINUX: RegExp = /^\/(?:[^/]+\/)*[^/]+$/
Const FILE_PATH_WINDOWS
FILE_PATH_WINDOWS: RegExp = /^[a-zA-Z]:\\(?:\w+\\)*\w+\.\w+$/
Const HEX_COLOR
HEX_COLOR: RegExp = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
Const HIDDEN_FILE_PATH_LINUX
HIDDEN_FILE_PATH_LINUX: RegExp = /^\/(?:[^/]+\/)*\.[^/]*/
Const HTML_COMMENTS
HTML_COMMENTS: RegExp = /^<!--[\s\S]*?-->$/
Const HTML_TAG
HTML_TAG: RegExp = /^<(\w+)[^>]*>(.*?<\/\1>)?$/
Const ID_CARD
ID_CARD: RegExp = /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/
Const ID_CARD_1G
ID_CARD_1G: RegExp = /^[1-9]\d{7}(?:0\d|10|11|12)(?:0[1-9]|[1-2][\d]|30|31)\d{3}$/
Const ID_CARD_2G
ID_CARD_2G: RegExp = /^[1-9]\d{5}(?:18|19|20)\d{2}(?:0\d|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/
Const IMAGE_LINK
IMAGE_LINK: RegExp = /^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i
Const INTEGER
INTEGER: RegExp = /^[-]?\d+$/
Const INTEGER_OR_DECIMAL
INTEGER_OR_DECIMAL: RegExp = /^[-]?\d+([.]{1}\d+)?$/
Const IPV4
IPV4: RegExp = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
Const IPV6
IPV6: RegExp = /^((([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}:))$/i
Const JAVA_PACKAGE_NAME
JAVA_PACKAGE_NAME: RegExp = /^([a-zA-Z_][a-zA-Z0-9_]*)+([.][a-zA-Z_][a-zA-Z0-9_]*)+$/
Const LOWER_CASE_ENGLISH_ALPHABET
LOWER_CASE_ENGLISH_ALPHABET: RegExp = /^[a-z]+$/
Const MAC_ADDRESS
MAC_ADDRESS: RegExp = /^((([a-f0-9]{2}:){5})|(([a-f0-9]{2}-){5}))[a-f0-9]{2}$/i
Const MAGNET_LINK
MAGNET_LINK: RegExp = /^magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.*$/
Const MD5_FORMAT
MD5_FORMAT: RegExp = /^([a-f\d]{32}|[A-F\d]{32})$/
Const MOBILE_ALL
MOBILE_ALL: RegExp = /^(?:\+?86)?1(?:3\d{3}|5[^4\D]\d{2}|8\d{3}|7(?:[0-35-9]\d{2}|4(?:0\d|1[0-2]|9\d))|9[0-35-9]\d{2}|6[2567]\d{2}|4(?:[14]0\d{3}|[68]\d{4}|[579]\d{2}))\d{6}$/
Const MOBILE_BROADCAST_NETWORK
MOBILE_BROADCAST_NETWORK: RegExp = /^(?:\+?86)?192\d{8}$/
Const MOBILE_CMCC
MOBILE_CMCC: RegExp = /^(?:\+?86)?1(?:3(?:4[^9\D]|[5-9]\d)|5[^3-6\D]\d|7[28]\d|8[23478]\d|9[578]\d)\d{7}$/
Const MOBILE_CTCC
MOBILE_CTCC: RegExp = /^(?:\+?86)?1(?:3(?:3\d|49)\d|53\d{2}|8[019]\d{2}|7(?:[37]\d{2}|40[0-5])|9[0139]\d{2})\d{6}$/
Const MOBILE_CUCC
MOBILE_CUCC: RegExp = /^(?:\+?86)?1(?:3[0-2]|[578][56]|66|96)\d{8}$/
Const MOBILE_DATA_ALL
MOBILE_DATA_ALL: RegExp = /^(?:\+?86)?14[579]\d{8}$/
Const MOBILE_DATA_CMCC
MOBILE_DATA_CMCC: RegExp = /^(?:\+?86)?147\d{8}$/
Const MOBILE_DATA_CTCC
MOBILE_DATA_CTCC: RegExp = /^(?:\+?86)?149\d{8}$/
Const MOBILE_DATA_CUCC
MOBILE_DATA_CUCC: RegExp = /^(?:\+?86)?145\d{8}$/
Const MOBILE_INMARSAT
MOBILE_INMARSAT: RegExp = /^(?:\+?86)?1749\d{7}$/
Const MOBILE_IOT_ALL
MOBILE_IOT_ALL: RegExp = /^(?:\+?86)?14(?:[14]0|[68]\d)\d{9}$/
Const MOBILE_IOT_CMCC
MOBILE_IOT_CMCC: RegExp = /^(?:\+?86)?14(?:40|8\d)\d{9}$/
Const MOBILE_IOT_CTCC
MOBILE_IOT_CTCC: RegExp = /^(?:\+?86)?1410\d{9}$/
Const MOBILE_IOT_CUCC
MOBILE_IOT_CUCC: RegExp = /^(?:\+?86)?146\d{10}$/
Const MOBILE_MIIT
MOBILE_MIIT: RegExp = /^(?:\+?86)?174(?:0[6-9]|1[0-2])\d{6}$/
Const MOBILE_MVNO_ALL
MOBILE_MVNO_ALL: RegExp = /^(?:\+?86)?1(?:7[01]|6[257])\d{8}$/
Const MOBILE_MVNO_CMCC
MOBILE_MVNO_CMCC: RegExp = /^(?:\+?86)?1(?:65\d|70[356])\d{7}$/
Const MOBILE_MVNO_CTCC
MOBILE_MVNO_CTCC: RegExp = /^(?:\+?86)?1(?:70[012]|62\d)\d{7}$/
Const MOBILE_MVNO_CUCC
MOBILE_MVNO_CUCC: RegExp = /^(?:\+?86)?1(?:70[4789]|71\d|67\d)\d{7}$/
Const MOBILE_PHONE_ALL
MOBILE_PHONE_ALL: RegExp = /^(?:\+?86)?1(?:3\d{3}|5[^4\D]\d{2}|8\d{3}|7(?:[235-8]\d{2}|4(?:0\d|1[0-2]|9\d))|9[0-35-9]\d{2}|66\d{2})\d{6}$/
Const MOBILE_SMS_ALL
MOBILE_SMS_ALL: RegExp = /^(?:\+?86)?1(?:3\d{3}|5[^4\D]\d{2}|8\d{3}|7(?:[0-35-9]\d{2}|4(?:0\d|1[0-2]|9\d))|9[0-35-9]\d{2}|6[2567]\d{2}|4[579]\d{2})\d{6}$/
Const NEGTIVE_DECIMAL
NEGTIVE_DECIMAL: RegExp = /^-{1}\d+\.\d+$/
Const NEGTIVE_INTEGER
NEGTIVE_INTEGER: RegExp = /^-{1}\d+$/
Const NEGTIVE_INTEGER_OR_DECIMAL
NEGTIVE_INTEGER_OR_DECIMAL: RegExp = /^-{1}\d+([.]{1}\d+)?$/
Const NEW_ENERGY_PLATE_NUMBER
NEW_ENERGY_PLATE_NUMBER: RegExp = /[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领 A-Z]{1}[A-HJ-NP-Z]{1}(([0-9]{5}[DF])|([DF][A-HJ-NP-Z0-9][0-9]{4}))$/
Const NON_ALPHABET
NON_ALPHABET: RegExp = /^[^A-Za-z]*$/
Const NON_NEW_ENERGY_PLATE_NUMBER
NON_NEW_ENERGY_PLATE_NUMBER: RegExp = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领 A-Z]{1}[A-HJ-NP-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/
Const PASSPORT
PASSPORT: RegExp = /(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/
Const PASSWORD
PASSWORD: RegExp = /^\S*(?=\S{6,})(?=\S*\d)(?=\S*[A-Z])(?=\S*[a-z])(?=\S*[!@#$%^&*? ])\S*$/
Const PHONE_CODE_IMEI
PHONE_CODE_IMEI: RegExp = /^\d{15,17}$/
Const PLATE_NUMBER
PLATE_NUMBER: RegExp = /^(?:[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领 A-Z]{1}[A-HJ-NP-Z]{1}(?:(?:[0-9]{5}[DF])|(?:[DF](?:[A-HJ-NP-Z0-9])[0-9]{4})))|(?:[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领 A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9 挂学警港澳]{1})$/
Const POSITIVE_DECIMAL
POSITIVE_DECIMAL: RegExp = /^\d+\.\d+$/
Const POSITIVE_INTEGER
POSITIVE_INTEGER: RegExp = /^\d+$/
Const POSITIVE_INTEGER_OR_DECIMAL
POSITIVE_INTEGER_OR_DECIMAL: RegExp = /^\d+([.]{1}\d+)?$/
Const POSTAL_CODE
POSTAL_CODE: RegExp = /^(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}$/
Const QQ
QQ: RegExp = /^[1-9][0-9]{4,10}$/
Const SCORE_OF_EXAMINATION_PAPER
SCORE_OF_EXAMINATION_PAPER: RegExp = /^150$|^(?:\d|[1-9]\d|1[0-4]\d)(?:.5)?$/
Const SUBNET_MASK
SUBNET_MASK: RegExp = /^(?:\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}$/
Const TEL
TEL: RegExp = /^\d{3}-\d{8}$|^\d{4}-\d{7}$/
Const THUNDER_LINK
THUNDER_LINK: RegExp = /^thunderx?:\/\/[a-zA-Z\d]+=$/
Const TIME_12_HOUR
TIME_12_HOUR: RegExp = /^(?:1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$/
Const TIME_24_HOUR
TIME_24_HOUR: RegExp = /^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$/
Const TRAIN_TRIPS
TRAIN_TRIPS: RegExp = /^[GCDZTSPKXLY1-9]\d{1,4}$/
Const UNIFIED_SOCIAL_CREDIT_CODE
UNIFIED_SOCIAL_CREDIT_CODE: RegExp = /^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/
Const USERNAME
USERNAME: RegExp = /^[a-zA-Z0-9_-]{4,16}$/
Const VERSION_NUMBER
VERSION_NUMBER: RegExp = /^\d+(?:\.\d+){2}$/
Const VIDEO_LINK
VIDEO_LINK: RegExp = /^https?:\/\/(.+\/)+.+(\.(swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4))$/i
Const WEBSITE_URL
WEBSITE_URL: RegExp = /^(((ht|f)tps?):\/\/)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?$/
Const WEBSITE_URL_WITH_PORT
WEBSITE_URL_WITH_PORT: RegExp = /^((ht|f)tps?:\/\/)?[\w-]+(\.[\w-]+)+:\d{1,5}\/?$/
Const WECHAT
WECHAT: RegExp = /^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/
帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线组合