react 鏈式寫法校驗資料

2021-09-24 06:43:45 字數 3385 閱讀 7012

使用方法

try  catch (error) 

複製**

原始碼, 使用了moment

⚠️沒怎麼測試哦

import moment from 'moment'

export default class joi

// 必填,不能為空

required(message = `$不能為空`)

return this

} // 最小長度

minlength(length = 6, message = `$長度不能小於$位`)

return this

} // 最大長度

maxlength(length = 6, message = `$長度不能超過$位`)

return this

} // 固定長度

length(length = 6, message = `$長度必須為$位`)

return this

} // 整數

integet(message = `$必須為整數`)

return this

} // 數字

number(message = `$要是數字格式`)

return this

} // 不等於

not(num = 0, message = `$不可以等於$`)

return this

} // 等於

eq(num = 0, message = `$要等於$`)

return this

} // 相等

equals(value, message = '兩次密碼不一致')

return this

} // 大於

gt(num = 0, message = `$要大於$`)

return this

} // 大於或等於

gte(num = 0, message = `$要大於或等於$`)

return this

} // 小於

lt(num = 0, message = `$要小於$`)

return this

} // 小於或等於

lte(num = 0, message = `$要小於或等於$`)

return this

} // 之間, 大於並小於

between(nums = [0, 100], message = `$要在$至$之間`)

throw message

} // 最小

min(num = 0, message = `$最小值為$`)

return this

} // 最大

max(num = 100, message = `$最大值為$`)

return this

} // 手機號

mobile(message = "手機號不正確") $/.test(this.value))

return this

} // 年齡

age(arr = [0, 129], message = "年齡不正確")

return this

} // 日期

date(format = 'yyyy-mm-dd', message = `$不正確`)

if (!moment(this.value, format).isvalid())

return this

} // 日期是否之前

isbefore(date, message = `$請選擇$之前的日期`)

return this

} // 日期是否之後

isafter(date, message = `$請選擇$之後的日期`)

return this

} // 日期是否相同

issame(date, message = `$請選擇$`)

return this

} // 日期是否之間

isbetween(dates = [moment().format('yyyy-mm-dd'), moment().add('day', 1).format('yyyy-mm-dd')], message = `$請選擇$至$`)

return this

} // 字母

letter(message = `$必須為英文`)

return this

} // 中文

chinese(message = `$必須為中文`)

return this

} // 列舉

enum(arr = , message = `$值必須為$中的乙個`)

return this

} // 身份證

idcard(message = '身份證不合法')

let city = ["11", "12", "13", "14", "15", "21", "22", "23", "31", "32", "33", "34", "35", "36", "37", "41", "42", "43", "44", "45", "46", "50", "51", "52", "53", "54", "61", "62", "63", "64", "65", "71", "81", "82", "91"]

if (!/^\d(18|19|20)?\d(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d(\d|x)$/i.test(this.value))

if (city.indexof(this.value.substr(0, 2)) === -1)

let id_array = [...this.value]

//加權因子

let factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]

//校驗位

let parity = ['1', '0', 'x', '9', '8', '7', '6', '5', '4', '3', '2']

let sum = 0

for (let i = 0; i < 17; i++)

if (id_array[17].touppercase() !== parity[sum % 11].touppercase())

return this

} // 郵箱

email(message = '郵箱不合法') [a-z0-9]+$/.test(this.value))

return this

} // 自定義正則

regexp(reg, message = `$格式不正確`)

return this }}

複製**

jQ鏈式寫法詳解

jq的鏈式寫法很好用,直接打 就可以了,說起來jq 是如何實現鏈式寫法的呢?很多人都說jq的鏈式寫法就是return this 那麼return this代表了什麼呢?簡單說return this就是要返回下乙個函式的執行父級 原諒我語文不好,找不到乙個更好的詞代替父級這倆個字。那麼下面寫個例子,來...

react總結 style的寫法

本篇文章複習在react中style的4種寫法 1.內聯式 不推薦 import react,from react class style extends react.component render return export default style 這種寫法不推薦使用,樣式多了之後,會導致 ...

react事件的多種寫法

類裡面的函式,放在類的原型物件上,供例項物件呼叫 class person 一般方法 speak onclick 通過this這個例項物件獲取handleclick函式 此時handleclick是自己執行的,所以this指向undefined 定義箭頭函式this指向定義時的this,class ...