当前位置:网站首页>正则表达式收集
正则表达式收集
2022-07-01 23:39:00 【坐等夕阳落time】
/**
* 以1开头,后面跟10位数
*/
export const MOBILE_REGEXP = /1[0-9]{10}/
/**
* 1. 用户名不能为纯数字
* 2. 由字母、数字或下划线 4-16位组成
*/
export const USER_NAME_REGEXP = /^(?!\d+$)[a-zA-Z0-9_]{4,16}$/
/**
* 1. 密码不能为纯数字
* 2. 由字母、数字或下划线 4-16位组成
*/
export const PASSWORD_REGEXP = /^(?!\d+$)([a-zA-Z0-9_]{4,16})/
/**
* 邮箱正则
*/
export const EMAIL_REGEXP = /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/
/**
* 统一社会信用代码(15/18/20位,宽松匹配)
*/
export const UNIFIED_SOCIAL_CREDIT_CODE = /^(([0-9A-Za-z]{15})|([0-9A-Za-z]{18})|([0-9A-Za-z]{20}))$/
/**
* @param {string} path
* @returns {Boolean}
*/
export function isExternal(path) {
return /^(https?:|mailto:|tel:)/.test(path)
}
/**
* @param {string} str
* @returns {Boolean}
*/
export function validUsername(str) {
return isEmail(str) || isMobile(str) || isUserName(str)
}
/**
* 是否是手机号
* @param value 输入值
* @return 匹配结果
*/
export function isMobile(value) {
return isMatching(MOBILE_REGEXP, value)
}
/**
* 是否是用户名
* @param value 输入值
* @return 匹配结果
*/
export function isUserName(value) {
return isMatching(USER_NAME_REGEXP, value)
}
/**
* 是否是邮箱
* @param value 输入值
* @return 匹配结果
*/
export function isEmail(value) {
return isMatching(EMAIL_REGEXP, value)
}
/**
* 统一社会信用代码
* @param value 输入值
* @returns 匹配结果
*/
export function isCreditCode(value) {
return isMatching(UNIFIED_SOCIAL_CREDIT_CODE, value)
}
export function isMatching(regexp, value) {
if (!value) {
return false
}
return regexp.test(value)
}
/**
* @param {string} url
* @returns {Boolean}
*/
export function validURL(url) {
const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
return reg.test(url)
}
/**
* @param {string} str
* @returns {Boolean}
*/
export function validLowerCase(str) {
const reg = /^[a-z]+$/
return reg.test(str)
}
/**
* @param {string} str
* @returns {Boolean}
*/
export function validUpperCase(str) {
const reg = /^[A-Z]+$/
return reg.test(str)
}
/**
* @param {string} str
* @returns {Boolean}
*/
export function validAlphabets(str) {
const reg = /^[A-Za-z]+$/
return reg.test(str)
}
/**
* @param {string} email
* @returns {Boolean}
*/
export function validEmail(email) {
const reg = /^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[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,}))$/
return reg.test(email)
}
/**
* @param {string} str
* @returns {Boolean}
*/
export function isString(str) {
if (typeof str === 'string' || str instanceof String) {
return true
}
return false
}
/**
* @param {Array} arg
* @returns {Boolean}
*/
export function isArray(arg) {
if (typeof Array.isArray === 'undefined') {
return Object.prototype.toString.call(arg) === '[object Array]'
}
return Array.isArray(arg)
}
/**
* 密码 6-16位
* @param {Array} password
* @returns {Boolean}
*/
export function validPassword(password) {
return password.length >= 6 && password.length <= 16
}
/**
* 判断是否全为空格 只要有一个其他字符返回false
* @param {String} str
* @returns {Boolean}
*/
export function validNoEmptySpace(str) {
var reg = /^\s+$/g
return reg.test(str)
}
/**
* 判断富文本是否为全空格
* @param {}} str
* @returns
*/
export function isHtmlNull(str) {
const html = str.replace(/<(?!img).*?>/g, '').replace(/ /gi, '').replace(/(\n)/g, '')
if (html === '') return true
var regu = '^[ ]+$'
var re = new RegExp(regu)
return re.test(html)
}
/**
* 匹配两侧空格,匹配到就返回true
* @param {String} str
* @returns {Boolean}
*/
export function noSpacesBothSides(str) {
var reg = /(^\s)|(\s$)/g
return reg.test(str)
}
/**
* 由字母、数字、中文或下划线 4-20位组成,且不能为纯数字
*/
/* function userName(value) {
return /^(?!\d+$)[a-zA-Z0-9_\u4e00-\u9fa5]{4,20}$/.test(value);
} */
// 用户名只有长度限制,可以随便输入,不能为纯数字
function userName(value) {
return /^(?!\d+$).{2,20}$/.test(value);
}
/**
* 由字母、数字、_、@符号 8-16位组成,且不能为纯数字
*/
function password(value) {
return /^(?!\d+$)[[email protected]]{8,16}$/.test(value);
}
/**
* 验证电子邮箱格式
*/
function email(value) {
return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value);
}
/**
* 验证手机格式
*/
function mobile(value) {
return /^1[3-9]\d{9}$/.test(value)
}
/**
* 验证URL格式
*/
function url(value) {
return /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?/.test(value)
}
/**
* 验证日期格式
*/
function date(value) {
return !/Invalid|NaN/.test(new Date(value).toString())
}
/**
* 验证ISO类型的日期格式
*/
function dateISO(value) {
return /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(value)
}
/**
* 验证十进制数字
*/
function number(value) {
return /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value)
}
/**
* 验证整数
*/
function digits(value) {
return /^\d+$/.test(value)
}
/**
* 验证身份证号码
*/
function idCard(value) {
return /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test(
value)
}
/**
* 是否车牌号
*/
function carNo(value) {
// 新能源车牌
const xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;
// 旧车牌
const creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
if (value.length === 7) {
return creg.test(value);
} else if (value.length === 8) {
return xreg.test(value);
} else {
return false;
}
}
/**
* 金额,只允许2位小数
*/
function amount(value) {
//金额,只允许保留两位小数
return /^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0\.\d{1,2}$/.test(value);
}
/**
* 中文
*/
function chinese(value) {
let reg = /^[\u4e00-\u9fa5]+$/gi;
return reg.test(value);
}
/**
* 只能输入字母
*/
function letter(value) {
return /^[a-zA-Z]*$/.test(value);
}
/**
* 只能是字母或者数字
*/
function enOrNum(value) {
//英文或者数字
let reg = /^[0-9a-zA-Z]*$/g;
return reg.test(value);
}
/**
* 验证是否包含某个值
*/
function contains(value, param) {
return value.indexOf(param) >= 0
}
/**
* 验证一个值范围[min, max]
*/
function range(value, param) {
return value >= param[0] && value <= param[1]
}
/**
* 验证一个长度范围[min, max]
*/
function rangeLength(value, param) {
return value.length >= param[0] && value.length <= param[1]
}
/**
* 是否固定电话
*/
function landline(value) {
let reg = /^\d{3,4}-\d{7,8}(-\d{3,4})?$/;
return reg.test(value);
}
/**
* 判断是否为空
*/
function empty(value) {
switch (typeof value) {
case 'undefined':
return true;
case 'string':
if (value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length == 0) return true;
break;
case 'boolean':
if (!value) return true;
break;
case 'number':
if (0 === value || isNaN(value)) return true;
break;
case 'object':
if (null === value || value.length === 0) return true;
for (var i in value) {
return false;
}
return true;
}
return false;
}
/**
* 是否json字符串
*/
function jsonString(value) {
if (typeof value == 'string') {
try {
var obj = JSON.parse(value);
if (typeof obj == 'object' && obj) {
return true;
} else {
return false;
}
} catch (e) {
return false;
}
}
return false;
}
/**
* 是否数组
*/
function array(value) {
if (typeof Array.isArray === "function") {
return Array.isArray(value);
} else {
return Object.prototype.toString.call(value) === "[object Array]";
}
}
/**
* 是否对象
*/
function object(value) {
return Object.prototype.toString.call(value) === '[object Object]';
}
/**
* 是否短信验证码
*/
function code(value, len = 6) {
return new RegExp(`^\\d{${len}}$`).test(value);
}
export default {
userName,
password,
email,
mobile,
url,
date,
dateISO,
number,
digits,
idCard,
carNo,
amount,
chinese,
letter,
enOrNum,
contains,
range,
rangeLength,
empty,
isEmpty: empty,
jsonString,
landline,
object,
array,
code
}
边栏推荐
- 【无标题】
- Various global files related to [.Net core] program
- excel如何打开100万行以上的csv文件
- Depth first search and breadth first search of graph traversal
- MySQL Replication中并行复制怎么实现
- JPA handwritten SQL, received with user-defined entity classes
- MT manager test skiing Adventure
- Applet form verification encapsulation
- Reproduction process and problems of analog transformer (ICLR 2022 Spotlight)
- 神经网络物联网的未来趋势与发展
猜你喜欢
随机推荐
2022 safety officer-c certificate examination question simulation examination question bank and simulation examination
How excel opens CSV files with more than one million lines
Redis AOF日志
使用 pair 做 unordered_map 的键值
Why is PHP called hypertext preprocessor
2021 robocom world robot developer competition - semi finals of higher vocational group
vs2015 AdminDeployment.xml
kubernetes资源对象介绍及常用命令(三)
ADO.NET 之sqlConnection 对象使用摘要
字典、哈希表、数组的概念
Zero foundation tutorial of Internet of things development
PostgreSQL notes (10) dynamically execute syntax parsing process
How to display real-time 2D map after rviz is opened
MySQL Replication中并行复制怎么实现
Postgresql源码(58)元组拼接heap_form_tuple剖析
为什么PHP叫超文本预处理器
Redis master-slave synchronization
物联网技术应用属于什么专业分类
Li Kou today's question -241 Design priorities for operational expressions
【ES实战】ES上的安全性运行方式









