js自定义常用函数

去除字符串并且验证只为数字的字符串
function validNumber ( str ) {
str = str.replace (/\s+/g,'')
var arg = /^[\d]+$ /
var res = str.match(arg)
if ( res!== null ) return true
else return false
}
身份证号码正则验证
function checkCard ( str ) {
var arg1 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/ // 15位数身份证正则表达式
var arg2 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[A-Z])$/ // 18位数身份证正则表达式
if ( str.match ( arg1 ) === null && str.match ( arg2 ) === null ) {
return false
} else {
return true
}
}
判断数组中是否存在某值
// es6已经存在find方法,find找到值,findIndex返回索引,find和findIndex后面接 includes方法也可
inArray ( arr , v ) {
for ( var i in arr ) {
if ( v === arr [ i ]) return true
}
return false
}
从数组中移除某值
removeArrayByValue ( arr , v ) {
    for ( var i in arr ) {
        if ( v === arr [ i ]) {
            arr.splice ( i , 1 )
            return arr
        }
    }
    return arr
}
时间格式设置
public static formatTime(format = 'yyyyMMddhhmmssSSS', time = new Date()) {
    var o = {
      'M+': time.getMonth() + 1, //月份
      'd+': time.getDate(), //日
      'h+': time.getHours(), //小时
      'm+': time.getMinutes(), //分
      's+': time.getSeconds(), //秒
      'q+': Math.floor((time.getMonth() + 3) / 3), //季度
      'S+': time.getMilliseconds() //毫秒
    }
    if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (time.getFullYear() + '').substr(4 - RegExp.$1.length))
    for (var k in o) {
      if (new RegExp('(' + k + ')').test(format)) {
        let regLength = RegExp.$1.length
        let valLength = (o[k] + '').length
        while (regLength > valLength) {
          o[k] = '0' + o[k]
          regLength--
        }
        format = format.replace(RegExp.$1, o[k])
      }
    }
    return format
  }
获取一个月的第一天和最后一天
document.write(new Date(2009, 4, 1)); //2009年5月的第1天(1月的值是0),2009年5月1日 
document.write(new Date(2009, 5, 0)); //2009年6月的第0天,也就是2009年5月的最后一天 

检测数据类型

var type=function(object){
return Object.prototype.toString.call(object);
}

type({}) //"[object Object]"
type([1,2,3,4]); //"[object Array]"
type(new Date()); //"[object Date]"
type(/^hello/); //"[object RegExp]"
type(new Error()) //"[object Error]"
type(new Number()) //"[object Number]"
//......
检查javascript变量是否为数字
  • Number.isFinite() 用来函数检查变量是否为数字,但也用来检查其是否为某些特殊值。它在遇到 NaN, Infinity 或者 -Infinity 时会返回 false