UNPKG

@ivujs/i-utils

Version:

前端模块化 JavaScript 工具库

75 lines (73 loc) 3.43 kB
/** * 正则表达式相关常量配置(全局只读) * * CH: 中文汉字 * EN: 英文字母 * LOWER_CASE: 小写字母 * UPPER_CASE: 大写字母 * CH_NAME: 中文姓名(2-16位) * EN_NAME: 英文姓名(1-20位) * NUMBER: 数字(包含正数和负数) * INTEGER: 整数(包含:0,正整数和负整数) * DECIMAL: 小数(包含正小数和负小数) * INT_OR_FLOAT: 正整数或者保留两位小数 * MOBILE: 手机号码(支持+86) * PHONE: 固定电话号码(比如:0755-1111111) * EMAIL: 邮箱 * ID_CARD: 一代15位或二代18位身份证 * ID_CARD15: 仅校验一代15位身份证 * ID_CARD18: 仅校验二代18位身份证 * BANK_CARD: 银行卡号 * POST_CODE: 邮政编码 * URL: url地址(可获取主机地址、主机名、端口号、协议、查询参数、hash等信息) * IP: ip地址 * IP6: IPv6地址 * EXTERNAL: 外链(http、https、mail、tel电话) */ const REGEXP = { // 中文汉字 CH: /^[\u4E00-\u9FA5]+$/, // 英文字母,1个以上 EN: /^[a-zA-Z]+$/, // 小写字母 LOWER_CASE: /^[a-z]+$/, // 大写字母 UPPER_CASE: /^[A-Z]+$/, // 中文姓名,2-16位(支持少数民族姓名间隔符「·」) CH_NAME: /^[\u4e00-\u9fa5·]{2,16}$/, // 英文姓名,1-20位 EN_NAME: /^[a-zA-Z\s]{1,20}$/, // 数字,包含正数和负数 NUMBER: /^([-+])?\d+(\.\d+)?$/, // 整数,包含:0,正整数和负整数 INTEGER: /^(0|[1-9][0-9]*|-[1-9][0-9]*)$/, // 小数,包含正小数和负小数 DECIMAL: /^([-+])?\d+\.\d+$/, // 正整数或者保留两位小数 INT_OR_FLOAT: /(^[1-9][0-9]*$)|(^[1-9][0-9]*\.[0-9]{1,2}$)|(^0\.[0-9]{1,2}$)|(^0$)/, // 手机号码,支持+86 MOBILE: /^(?:(?:\+|00)86)?1[1-9]\d{9}$/, // 固定电话号码,比如:0755-1111111 PHONE: /^(?:(?:\d{3}-)?\d{8}|^(?:\d{4}-)?\d{7,8})(?:-\d+)?$/, // 邮箱 EMAIL: /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/, // 一代15位或二代18位身份证 ID_CARD: /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0[1-9]|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/, // 仅校验一代15位身份证 ID_CARD15: /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)/, // 仅校验二代18位身份证 ID_CARD18: /(^\d{6}(18|19|20)\d{2}(0[1-9]|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/, // 银行卡号 BANK_CARD: /^[1-9]\d{9,29}$/, // 邮政编码 POST_CODE: /^(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}$/, // url地址,可以获取到主机地址、主机名、端口号、协议、查询参数、hash等信息c URL: /^(?:(ftp|https?|ftps):\/\/)?((?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+(?:[a-zA-Z]{2,6})?)?(?::(\d+))?(?:\/([^\?#]*))?(?:\?([^#]*))?(?:#(.*))?$/, // ip地址 IP: /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/, // IPv6地址 IP6: /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[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}::([0-9a-fA-F]{1,4}:){0,5}[0-9a-fA-F]{1,4})$/i, // 是外链,http,https,mail,tel电话 EXTERNAL: /^(http:|https:|ftp:|ftps:|mailto:|tel:)/i, }; export { REGEXP };