| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285 |
- /**
- * created By 2019-03-14
- * author: wuliangguang
- *
- */
- $(function() {
- wTool.aRoll()
- wTool.dot()
- })
- function WTool() {}
- WTool.prototype = {
- /*
- 判断是否使用jQuery
- 返回1 有jq, 返回0 无jq
- */
- hasJq () {
- if (typeof jQuery === 'undefined') {
- return 1
- } else {
- return 0
- }
- },
- /*
- 手机号验证
- */
- isMobile(val) {
- var mobileRegex = /^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\d{8}$/
- return mobileRegex.test(val)
- },
- /*
- 微信号 由6-20个字母、数字、下划线和减号组成且必须以字母开头!
- */
- isWeChat(val) {
- var weChatIDRegex = /^[a-zA-Z]{1}[-_a-zA-Z0-9]{5,19}$/
- return weChatIDRegex.test(val)
- },
- /*
- 微博账号 ID由4-30个中英文、数字、下划线和减号组成!
- */
- isWeiBo(val) {
- var weBoIDRegex = /^[-_a-zA-Z0-9\u4e00-\u9fa5]{4,30}$/
- return weBoIDRegex.test(val)
- },
- /*
- QQ号 由5-11个数字组成!
- */
- isQQ(val) {
- var qqRegex = /^[1-9][0-9]{4,10}$/
- return qqRegex.test(val)
- },
- /*
- 获取字符串长度
- */
- getStringLength(_string) {
- var chineseRegex = /[^\x00-\xff]/g
- var strLength = _srting.replace(chineseRegex, '**').length
- return strLength
- },
- /*
- 超出字符变成...或者不加
- */
- stringSubstr(_srting, _length, noEllipsis) {
- var newLength = 0
- var newString = ''
- var singleChar = ''
- var chineseRegex = /[^\x00-\xff]/g
- var strLength = _srting.replace(chineseRegex, '**').length
- for (var i = 0; i < strLength; i++) {
- singleChar = _srting.charAt(i).toString()
- if (singleChar.match(chineseRegex) !== null) {
- newLength += 2
- } else {
- newLength++
- }
- if (newLength > _length) {
- break
- }
- newString += singleChar
- }
- strLength > _length && !noEllipsis && (newString += '...')
- return newString
- },
- /*
- *判断是不是ie浏览器
- *
- */
- isIE() {
- if (!!window.ActiveXObject || 'ActiveXObject' in window) return true
- else return false
- },
- /*
- * 滚动回到页面的顶部
- */
- goBackTop() {
- // 设置定时器
- let timer = setInterval(function() {
- let osTop = document.body.scrollTop || document.documentElement.scrollTop
- // ceil向上取整,floor向下取整
- let speed = Math.ceil(osTop / 2)
- // 做一个变换速度的回到顶部效果
- document.body.scrollTop = document.documentElement.scrollTop =
- osTop - speed
- if (osTop <= 0) {
- // 清除定时器
- clearInterval(timer)
- }
- }, 100)
- },
- /*
- * 获取未来某个时间的时间戳
- * params {
- * stringTime: {
- * type: String,
- * decs: 需要传递过来的时间,格式为:('2018-07-10 10:20:30')
- * }
- * }
- */
- getTimeStamp(stringTime) {
- let timestamp = Date.parse(new Date(stringTime))
- console.log('的时间戳为:' + timestamp)
- return timestamp
- },
- /*
- *获取一个对象的key值,并返回一个数组
- *
- * 返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键名
- */
- getObjectKeys(obj) {
- let data = Object.keys(obj)
- console.log('keys:', data)
- return data
- },
- /*
- * 获取一个对象的所有value值,并返回一个数组
- *
- *
- * 返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键值。
- */
- getObjectValues(obj) {
- let data = Object.values(obj)
- console.log('values:', data)
- return data
- },
- /*
- * 获取一个对象由本身的键值对组成的数组,并返回一个数组
- *
- * example:
- * {a, '1', b: '2'}
- * 转换后为
- * [[a, '1'], [b,'2']]
- */
- getObjectEntries(obj) {
- let data = Object.entries(obj)
- console.log('entries:', data)
- return data
- },
- /*
- * 将对象转换成真正的Map结构
- *
- *
- */
- getObjectMap(obj) {
- let data = new Map(Object.entries(obj))
- console.log('Map:', data)
- return data
- },
- /*
- * 将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象
- *
- * params {
- * obj1: {
- * type: Object,
- * decs: 目标对象
- * },
- * obj2: {
- * type: Object,
- * decs: 源对象
- * }
- * }
- */
- combineObject(obj1, obj2) {
- let data = Object.assign(obj1, obj2)
- console.log('assign', data, obj1, obj2)
- return data
- },
- /**
- * 随机整数
- * params: {
- * n: 整数1,
- * m: 整数2
- * }
- * m > n
- */
- randomInteger(n, m) {
- let random = Math.floor(Math.random() * (m - n + 1) + n)
- console.log('随机的整数位:' + random)
- return random
- },
- /**
- * desc:锚点滚动美化
- */
- aRoll(fun, height) {
- $('a[href*=#]').on('click', {fun: fun, height: height}, function (e) {
- if (typeof e.data.fun == "function") {
- e.data.fun.call(this);
- }
- if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
- var $target = $(this.hash);
- $target = $target.length && $target || $('[name=' + this.hash.slice(1) + ']');
- var height
- if (e.data.height === 0) {
- height = $target.outerHeight()
- if ($target.length) {
- var targetOffset = $target.offset().top - height
- $('html,body').animate({
- scrollTop: targetOffset
- },
- 500);
- return false;
- }
- }
- }
- })
- },
- /**
- *desc:多行超出省略号
- */
- dot() {
- if (typeof(jQuery.fn.dotdotdot) != "function") {
- return;
- }
- ;
- $(".dot").dotdotdot({
- wrap: 'letter',
- after: 'a'
- })
- },
-
- /**
- * 检测浏览器版本信息
- * return ie 6 7 8 9 返回false;其他返回true;
- */
- browser() {
- var browser = navigator.appName;
- var b_version = navigator.appVersion;
- var version = b_version.split(";");
- if (version[1] == undefined || version[1] == "undefined") {
- return true;
- }
- var trim_Version = version[1].replace(/[ ]/g, "");
- if (browser == "Microsoft Internet Explorer" && trim_Version == "MSIE6.0") {
- return false;
- } else if (browser == "Microsoft Internet Explorer" && trim_Version == "MSIE7.0") {
- return false;
- } else if (browser == "Microsoft Internet Explorer" && trim_Version == "MSIE8.0") {
- return false;
- } else if (browser == "Microsoft Internet Explorer" && trim_Version == "MSIE9.0") {
- return false;
- } else {
- return true;
- }
- },
- /**
- * 正则验证
- * regs正则表达式,str验证字段
- */
- regEx(regs, str) {
- var reg = eval(regs);
- var re = new RegExp(reg);
- $strs = $.trim(str);
- if (re.test($strs)) {
- return false;
- } else {
- return true;
- }
- }
- }
- const wTool = new WTool()
|