常用正则校验
/**
* 邮箱
* @param {*} s
*/
export function isEmail (s) {
return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
}
/**
* 手机号码
* @param {*} s
*/
export function isMobile (s) {
return /^1[0-9]{10}$/.test(s)
}
/**
* 电话号码
* @param {*} s
*/
export function isPhone (s) {
return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
}
/**
* URL地址
* @param {*} s
*/
export function isURL (s) {
return /^http[s]?:\/\/.*/.test(s)
}
/**
* 数字(包含小数)校验
*/
export function checkNumber(value,sumLen,pointLen, callback) {
let reg = /^(((0(\.\d+)?))|([1-9]\d*(\.\d+)?))$/
let msg = ''
if(pointLen === 0){
msg = '请输入最多'+ (sumLen-pointLen) + '位整数'
} else {
msg = '请输入最多'+ (sumLen-pointLen) + '位整数, ' + pointLen + '位小数的数字'
}
if(value == null || value.toString().trim() == ''){
callback()
} else if (isNaN(value)) {
callback(new Error('请输入数字'))
} else if (!reg.test(value)) {
callback(new Error('请输入合法的数字'))
} else if(value.toString().indexOf(".") >= 0) {
let numArr = value.toString().split('.')
if(numArr[0].length > sumLen-pointLen ) {
callback(new Error(msg))
} else if(numArr[1].length > pointLen) {
callback(new Error(msg))
} else {
callback()
}
} else if(value.toString().indexOf(".") < 0 && value.toString().length > sumLen-pointLen) {
callback(new Error(msg))
}else {
callback()
}
}
/**
* 正负数(包含小数)校验
* @param value
* @param sumLun
* @param pointLen
* @param callback
*/
export function checkNumberNegative(value,sumLen,pointLen,callback){
let reg = /(^[\-0-9][0-9]*(.[0-9]+)?)$/
if(value == null || value.toString().trim() == ''){
callback()
} else if (isNaN(value)) {
callback(new Error('请输入数字'))
} else if (!reg.test(value)) {
callback(new Error('请输入合法的数字'))
} else if(value.toString().indexOf(".") >= 0) {
let numArr = value.toString().split('.')
if(numArr[0].length > sumLen-pointLen ) {
callback(new Error('请输入最多'+ (sumLen-pointLen) + '位整数, ' + pointLen + '位小数的数字'))
} else if(numArr[1].length > pointLen) {
callback(new Error('请输入最多'+ (sumLen-pointLen) + '位整数, ' + pointLen + '位小数的数字'))
} else {
callback()
}
} else if(value.toString().indexOf(".") < 0 && value.toString().length > sumLen-pointLen) {
callback(new Error('请输入最多'+ (sumLen-pointLen) + '位整数, ' + pointLen + '位小数的数字'))
}else {
callback()
}
}
/**
* 百分比数字校验(包含负数)
*/
export function checkNumberPercent(rule,value,callback) {
let reg = /(^([+-]?)[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^([+-]?)(0){1}$)|(^([+-]?)[0-9]\.[0-9]([0-9])?$)/
if(value == null || value.toString().trim() == ''){
callback()
} else if (isNaN(value)) {
callback(new Error('请输入最多2位小数的数字'))
} else if (!reg.test(value)) {
callback(new Error('请输入最多2位小数的数字'))
} else if (Number(value) > 100 || Number(value) < -100){
callback(new Error('请输入正负100之间的数字'))
}else {
callback()
}
}
/**
* 百分比数字校验(不包含负数)
*/
export function checkPercent(rule,value,callback) {
let reg = /^[0-9]+([.]{1}[0-9]{1,2})?$/
if(value == null || value.toString().trim() == ''){
callback()
} else if (isNaN(value)) {
callback(new Error('请输入最多2位小数的数字'))
} else if (!reg.test(value)) {
callback(new Error('请输入最多2位小数的数字'))
} else if (Number(value) > 100){
callback(new Error('请输入小于100的数字'))
}else {
callback()
}
}
/**
* 校验正整数和0
*/
export function checkPositiveIntegers(rule,value,callback) {
let reg = /^(0|\+?[1-9][0-9]*)$/
if(value == null || value.toString().trim() == ''){
callback()
} else if (isNaN(value)) {
callback(new Error('请输入数字'))
} else if (!reg.test(value)) {
callback(new Error('请输入合法的非负整数'))
} else {
callback()
}
}
作者:whh666
出处:https://www.cnblogs.com/whh666/p/15917801.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix