/* 合法uri*/
export function validateURL(textval) {
const urlregex = /^(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 urlregex.test(textval)
}
/* 小写字母*/
export function validateLowerCase(str) {
const reg = /^[a-z]+$/
return reg.test(str)
}
/* 大写字母*/
export function validateUpperCase(str) {
const reg = /^[A-Z]+$/
return reg.test(str)
}
/* 大小写字母*/
export function validatAlphabets(str) {
const reg = /^[A-Za-z]+$/
return reg.test(str)
}
/* 数字*/
export function validateNumber(str) {
const reg = /^[1-9]\d*$/
return reg.test(str)
}
/**
* 获取url参数
* @param {*} name 参数名
*/
const getLocationParam = function(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
var r = window
.location
.hash.split('?')[1]
.match(reg)
if (r != null) return decodeURIComponent(r[2])
return ''
}
/**
* 生成GUID
* @returns {*}
*/
const Guid = function newGuid() {
let guid = formatTime(new Date(), 'yyyyMMdd-HHmm-ss')
for (let i = 1; i <= 18; i++) {
const n = Math.floor(Math.random() * 16.0).toString(16)
guid += n
if ((i === 2) || (i === 6) || (i === 10)) {
guid += '-'
}
}
return guid
}
/**
* 深度复制 数组 数组中的对象
* @param {*} source 数据
*/
const objDeepCopy = function objDeepCopy(source) {
var sourceCopy = source instanceof Array ? [] : {}
for (var item in source) {
sourceCopy[item] = typeof source[item] === 'object' ? objDeepCopy(source[item]) : source[item]
}
return sourceCopy
}
/**
* 保留小数位数方法
* @param number 数
* @param defaultBit 默认的小数位数
* @returns
*/
const NumberFixed = function NumberFixed(number, { defaultBit = 0 }) {
if (number === 'Infinity' || isNaN(number) || number === undefined || number == null) {
return 0
}
let n = 2
if (defaultBit !== 0) { // 有默认小数位数读取默认
n = defaultBit
}
return +(+number).toFixed(n)
}