160 lines
4.6 KiB
JavaScript
160 lines
4.6 KiB
JavaScript
//--------------------------------------------------------------
|
|
//LC
|
|
//2021-10-31
|
|
//--------------------------------------------------------------
|
|
|
|
//校验银行卡号,银行卡校验规则(Luhn算法)
|
|
function isBankNo(value) {
|
|
if (value == "" || !isPositiveInteger(value)) return false;
|
|
var wei = [],
|
|
sumOdd = 0,
|
|
sumEven = 0,
|
|
length = value.length;
|
|
for (var j = 0; j < length; j++) {
|
|
wei[j] = parseInt(value.substring(length - j - 1, length - j)); // 从最末一位开始提取,每一位上的数值
|
|
}
|
|
for (var i = 0; i < length / 2; i++) {
|
|
sumOdd += wei[2 * i];
|
|
if (wei[2 * i + 1] * 2 > 9) wei[2 * i + 1] = wei[2 * i + 1] * 2 - 9;
|
|
else wei[2 * i + 1] *= 2;
|
|
sumEven += wei[2 * i + 1];
|
|
}
|
|
return (sumOdd + sumEven) % 10 == 0;
|
|
}
|
|
//验证手机号
|
|
function isPhone(phone){
|
|
let reg = /^[1][3-9][0-9]{9}$/
|
|
if(reg.test(phone)){
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
//验证
|
|
//正整数
|
|
function isInteger(value) {
|
|
return /^[1-9][0-9]*$/.test(value);
|
|
}
|
|
//浮点类型
|
|
function isFloat(num) {
|
|
var reg = /^\d+(?=\.{0,1}\d+$|$)/
|
|
num=num.replace(/\.\d{2,}$/,num.substr(num.indexOf('.'),3))//删除小数点后两位
|
|
return reg.test(num) ;
|
|
}
|
|
|
|
//date类型转string,就是2019-10-10 12:00:00这样,date转时间戳就new Date().valueOf()
|
|
function formatDate (date,type) {
|
|
if(type=="long")
|
|
return date.getFullYear()+'-'+(parseInt(date.getMonth())+1)+'-'+date.getDate()+' '+date.getHours()+':'+date.getMinutes()+':'+date.getSeconds()
|
|
else
|
|
return date.getFullYear()+'-'+(parseInt(date.getMonth())+1)+'-'+date.getDate()
|
|
}
|
|
|
|
//是否身份证
|
|
function isIdCard (num) {
|
|
let reg = /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
|
|
return reg.test(reg)
|
|
}
|
|
|
|
//密码必须是大小写英文加数字
|
|
function isPassword(pass) {
|
|
if(pass.length <8 || pass.length >20){
|
|
return false;
|
|
}
|
|
var str = pass;
|
|
var regexpUperStr = /[A-Z]+/;
|
|
var reexpLowerStr = /[a-z]+/;
|
|
var regexpNum = /\d+/;
|
|
var uperStrFlag = regexpUperStr.test(str);
|
|
var lowerStrFlag = reexpLowerStr.test(str);
|
|
var numFlag = regexpNum.test(str);
|
|
|
|
if (uperStrFlag == true && lowerStrFlag == true && numFlag == true)
|
|
return true;
|
|
else
|
|
return false;
|
|
}
|
|
//验证昵称
|
|
function isNickname(nickname){
|
|
if(nickname.length <2 || nickname.length >16){
|
|
return false;
|
|
}
|
|
var regex = /^(\w|[\u4E00-\u9FA5])*$/;
|
|
var res = regex.test(nickname);
|
|
if(res==true){
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
var minute = 1000 * 60;
|
|
var hour = minute *60;
|
|
var day = hour *24;
|
|
var week = day * 7;
|
|
var month = day * 30;
|
|
function getTimer(stringTime){
|
|
var time1 = new Date().getTime();//当前的时间戳
|
|
stringTime = stringTime.replace(/-/g,'/'); //IOS不支持-格式时间,只支持/格式时间
|
|
var time2 = Date.parse(new Date(stringTime));//指定时间的时间戳
|
|
var time = time1 - time2;
|
|
|
|
var result = null;
|
|
if(time < 0){
|
|
return "";
|
|
}else if(time/month >= 1){
|
|
result = parseInt(time/month) + "月前";
|
|
}else if(time/week >= 1){
|
|
result = parseInt(time/week) + "周前";
|
|
}else if(time/day >= 1){
|
|
result = parseInt(time/day) + "天前";
|
|
}else if(time/hour >= 1){
|
|
result = parseInt(time/hour) + "小时前";
|
|
}else if(time/minute >= 1){
|
|
result = parseInt(time/minute) + "分钟前";
|
|
}else {
|
|
result = "刚刚";
|
|
}
|
|
return result;
|
|
}
|
|
function getUrlParam(name) {
|
|
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
|
var r = window.location.search.substr(1).match(reg);
|
|
if(r != null) return unescape(r[2]);
|
|
return null;
|
|
}
|
|
function getParam(url,name) {
|
|
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
|
var r = url.substr(1).match(reg);
|
|
if(r != null) return unescape(r[2]);
|
|
return null;
|
|
}
|
|
function formatRichText(html){
|
|
let newContent= html.replace(/<img[^>]*>/gi,function(match,capture){
|
|
match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, '');
|
|
match = match.replace(/width="[^"]+"/gi, '').replace(/width='[^']+'/gi, '');
|
|
match = match.replace(/height="[^"]+"/gi, '').replace(/height='[^']+'/gi, '');
|
|
return match;
|
|
});
|
|
newContent = newContent.replace(/style="[^"]+"/gi,function(match,capture){
|
|
match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/width:[^;]+;/gi, 'max-width:100%;');
|
|
return match;
|
|
});
|
|
newContent = newContent.replace(/<br[^>]*\/>/gi, '');
|
|
newContent = newContent.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:block;margin:0;"');
|
|
return newContent;
|
|
}
|
|
|
|
export {
|
|
isBankNo,
|
|
isInteger,
|
|
isFloat,
|
|
formatDate,
|
|
isIdCard,
|
|
isPhone,
|
|
isPassword,
|
|
isNickname,
|
|
getTimer,
|
|
getUrlParam,getParam,
|
|
formatRichText,
|
|
} |