推薦一個js經常使用工具函數庫

etools

經常使用js函數整理

安裝和使用

  • 使用npm安裝:npm install -s etools

    經過es6模塊引入,如import _ from "etools";console.log(_.extend(true,{},{"age":23}));css

  • 下載並在頁面引入etools.js

    直接調用ETool對象中得方法,如console.log(ETools.extend(true,{},{"age":23}));html

  • Git 倉庫地址 https://github.com/MarvenGong...

版本說明

  • 1.2.8 新增datetime下根據身份證號碼獲取年齡的方法getAgeByIDCard
  • 1.2.7 新增datetime下根據出生日期獲取年齡的方法getAgeByBirthday
  • 1.2.5 新增async相關函數用來處理異步函數經常使用方法
  • 1.2.3 修正了部分bug,新增array數組擴展,增長Array.filterBy方法
  • 1.2.2 修正了部分bug,新增string下的generateUUID和addNum方法
  • 1.0.9 修正了deparam函數依賴jquery的$.each函數的問題

詳細文檔

對象相關

  • ETools.extend(deep,obj1,obj2)jquery

    做用:相似於jquery.extend方法,合併json對象,並將合併後的對象保存到obj1中做爲返回值git

    參數:es6

    1. deep,是否深度複製,設爲true,會複製對象中嵌套的對象。
    2. obj1,obj2,要合併的對象
案例:`ETools.extend(true,{"name":"zhangsan",gender:"male"},{"age":12})`
        輸出結果`{"name":"zhangsan",gender:"male","age":12}`

說明,咱們能夠將obj1設爲空{},用這個方法克隆一個對象,解決引用類型賦值的問題

url請求相關

  • ETools.deparam(str)

    將jquery序列化表單以後獲得的參數字符串轉換成標準的json對象github

    str,即要格式化的字符串算法

    ETools.deparam("aaa=bbb&ccc=ddd")輸出結果{aaa:bbb,ccc:ddd}npm

    查看演示>>json

  • ETools.urlParamToObj(url)

    將鏈接中的get請求參數轉換成json對象數組

    url:連接

    ETools.deparam("www.baidu.com?aaa=bbb&ccc=ddd")輸出結果{aaa:bbb,ccc:ddd}

事件

  • ETools.stopPropagation(event)

    阻止事件向上冒泡,點擊某元素不會觸發父元素的事件

    event:事件對象

    ETools.stopPropagation(event)

異步函數相關

  • ETools.async.wait(timestamp)

    在異步函數中等待指定的時間

    timestamp 等待的時間的毫秒數
    async getUserList() {
    await ETools.async.wait(2000)
    }

時間日期相關

  • ETools.datetime.compareDate(starate,endDate)

    比較兩個日期的大小

    日期格式"yyyy-mm-dd",若是返回值爲-1,則前者大於後者,爲0二者相等,爲1,後者大於前者

    ETools.datetime.compareDate("2015-12-11","2015-12-12")

  • ETools.datetime.compareTime(startTime,endTime)

    比較兩個時間的大小

    日期格式"yyyy-mm-dd h:mi:s",若是返回值爲-1,則前者大於後者,爲0二者相等,爲1,後者大於前者

    ETools.datetime.compareDate("2015-12-11 12:10:00","2015-12-12 12:10:00")

  • ETools.datetime.arriveTimerFormat(s)

    將秒數轉換成對應的多少小時,多少分多少秒(用於倒計時的顯示)

    s:要計算的秒數

  • ETools.datetime.arriveTimerFormat(52010)->[0, 14, 26, 50, "14:26:50"]
  • ETools.datetime.format(date,formatStr)

    將Date類型的時間轉換成指定格式的字符串

    <p>date:日期類型的對象(如:new Data())</p>formatStr:想要的時間格式如:"yyyy-mm-dd hs 星期w"

    ETools.datetime.Format(new Date(),"yyyy-MM-dd hs 星期w")->"2015-16-24 15:16:15 星期四"

  • ETools.datetime.parse(timeStr)

    將時間字符串轉換成對應的時間戳

    <p>timeStr:時間字符串(如:"2015-16-24 15:16:15")</p>

    ETools.datetime.parse("2015-16-24 15:16:15")->1461482175

  • ETools.datetime.getNewDay(dataStr,addNumber)

    日期加上天數獲得新的日期

    dateTemp 須要參加計算的日期,days要添加的天數,返回新的日期,日期格式:YYYY-MM-DD

    參數:dataStr原來的日期(如:「2014-12-1」)

    addNumber要增長或減小的天數,減小就給負數值

    如:ETools.datetime.getNewDay("2017-12-1",2) -- "2017-12-3"

    ETools.datetime.getNewDay("2017-12-1",-2) -- "2017-11-29"

  • ETools.datetime.getAgeByBirthday(birthdatStr)

    根據出生日期獲取年齡

    birthdatStr 出生日期標準格式的字符串 如:1991-08-20

    ETools.datetime.getAgeByBirthday("1991-08-20") -- 27

    • ETools.datetime.getAgeByIDCard(idcard)

      根據出生日期獲取年齡 若是傳入的不是標準的身份證則返回false

      idcard 身份證號 如:"*19951208x"

      ETools.datetime.getAgeByIDCard("*19951208x") -- 23

html格式操做

  • ETools.html.htmlEncode(str)

    把html中的常見符號轉換成特殊符號碼,如"<"轉換成<pre>"&lt;"</pre>

    參數str,要轉換的html代碼

  • ETools.html.htmlDecode(str)

    把html代碼轉換成html元素

    參數str,要轉換的html字符串

頁面操做

  • ETools.page.addFavorite(url,title)

    將頁面添加到瀏覽器收藏夾

    url:要添加的地址信息。title:在收藏夾中的名字

    ETools.page.addFavorite("www.baidu.com","百度")

  • ETools.page.addHome(url)

    將頁面設爲瀏覽器的首頁

    url:要添加的地址信息。

    ETools.page.addFavorite("www.baidu.com")

動態加載

  • ETools.loadStyle(styleUrl)

    動態加載樣式表

    styleUrl:要加載的樣式文件的地址

    ETools.loadStyle("css/style.css")

瀏覽器信息獲取

  • ETools.getExplorerInfo()

    返回瀏覽器的名稱以及版本信息{browerName:"google",version:"3.10.101.1"}

字符串操做

  • ETools.string.getStrLength(str)

    獲取字符串長度,中文字符按兩個長度計算

    str:要計算的字符串

    ETools.string.getStrLength("ilove你")->7

  • ETools.string.trim(str)

    去掉字符串左右的空格

    str:要去空格的字符串

    ETools.string.getStrLength(" aaa ")->"aaa"

  • ETools.string.number2String(number)

    參數 number : 要轉換的數字

    把1,2,3,4....,99999 類型的數字轉換成中文字符串

    如:ETools.string.number2String(123) -> 「一百二十三」

  • ETools.string.generateUUID()

    生成一個惟一標識的字符串(UUID算法)

  • ETools.string.addNum(number1, number2)

    參數 number1;number2 : 要相加的兩個數字

    包含浮點數的兩個數相加,解決丟失精度的問題

    如:ETools.string.addNum(1.1, 1.2) -> 「2.3」 若是直接執行1.1+1.2會出現等於2.299999999999999999999的狀況

表單驗證

  • ETools.vertify.isURL(str)

    驗證url地址

    ETools.vertify.isURL("www.baidu.com")->true

  • ETools.vertify.isEmpty(str)

    驗證是否爲空

    ETools.vertify.isEmpty(" ")->true

  • ETools.vertify.isDigit(str)

    驗證是不是數字

    ETools.vertify.isDigit("2.0")->false

  • ETools.vertify.isTelephone(str)

    驗證固定電話

    ETools.vertify.isTelephone("023-55813950")->true

  • ETools.vertify.isMobile(str)

    驗證手機號碼

    ETools.vertify.isMobile("15696544221")->true

  • ETools.vertify.isQQ(str)

    驗證QQ號

    ETools.vertify.isQQ("1634251421")->true

  • ETools.vertify.isEmail(str)

    驗證郵箱地址

    ETools.vertify.isEmail("2542152@qq.com")->true

  • ETools.vertify.isIDCard(str)

    驗證身份證號碼

    ETools.vertify.isIDCard("500235199008205570")->true

  • ETools.vertify.isPlusDigit(str)

    驗證是不是無符號正整數

    ETools.vertify.isPlusDigit("52")->true

  • ETools.vertify.isChinese(str)

    驗證中文字符

    ETools.vertify.isChinese("我愛你")->true

  • ETools.vertify.isDate(str)

    驗證日期

    ETools.vertify.isDate("2015-12-12")->true

  • ETools.vertify.isPostalCode(str)

    驗證郵政編碼

    ETools.vertify.isPostalCode("400521")->true

  • ETools.vertify.isRegisterUserName(str)

    驗證登陸名,只能輸入5-20個以字母開頭、可帶數字、「_」、「.」的字串

    ETools.vertify.isRegisterUserName("gong163")->true

  • ETools.vertify.isTrueName(str)

    校驗用戶姓名:只能輸入1-30個以字母開頭的字串

    ETools.vertify.isTrueName("龔明華")->true

  • ETools.vertify.isPassword(str)

    校驗密碼:只能輸入6-20個字母、數字、下劃線

    ETools.vertify.isPassword("gong1632542142")->true

數組相關

  • Array.filterBy(key, value)
    從對象數組中根據對象的key篩選值等於value的對象,若是鍵值對惟一則返回對象,若是不惟一則返回對象數組。

    key: 對象中的鍵,value: 要篩選的鍵所對應的值

    [{name: '張三',age: 12},{name: '張三',age: 33},{name: 'lisi',age: 22}].filterBy('name', '張三') -> [{name: '張三',age: 12},{name: '張三',age: 33}];

Cookie操做

  • ETools.cookie.setCookie(name, value, Hours)

    設置Cookie值

    name:cookie的key,value:cookie的value,Hours:Cookie的超時時間

    ETools.cookie.setCookie("username", "xiaoming", 0.5)

  • ETools.cookie.getCookie(name)

    獲取Cookie值

    name:cookie的key

    ETools.cookie.getCookie("username")->"xiaoming"

  • ETools.cookie.delCookie(name)

    刪除Cookie

    name:cookie的key

    ETools.cookie.delCookie("username")

html格式操做

  • ETools.openWindow(url,windowName,width,height)

    打開一個彈窗窗口

    url打開的連接,windowName窗口的title,width窗口寬度,height窗口高度

    ETools.openWindow("www.baidu.com","百度",500,600)

jquery插件

  • checkAll()

    表格的行的全選和反全選

    $(".checkAll").checkAll();

    須要給複選框綁定checkAll()事件。爲其加上data-table屬性,屬性值指向要執行全選的table的id。

    若是有多個複選框共同做用於同一個表格,給這些複選框加上相同的data-table屬性值便可

相關文章
相關標籤/搜索