在咱們實際項目當中常常會遇到一些經常使用的正則方法,這裏統一整理一下,後續的話會不斷的更新完善。(歡迎你們收藏補充)
html
export const regExpConfig = { mobile: /^1([3|4|5|7|8|])\d{9}$/, // 手機號碼 telephone: /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/, // 固定電話 num: /^[0-9]*$/, // 數字 phoneNo: /(^1([3|4|5|7|8|])\d{9}$)|(^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$)/, // 電話或者手機 policeNo: /^[0-9A-Za-z]{4,10}$/, // 帳號4-10位數字或字母組成 pwd: /^[0-9A-Za-z]{6,16}$/, // 密碼由6-16位數字或者字母組成 isNumAlpha: /^[0-9A-Za-z]*$/, // 字母或數字 isAlpha: /^[a-zA-Z]*$/, // 是否字母 isNumAlphaCn: /^[0-9a-zA-Z\u4E00-\uFA29]*$/, // 是否數字或字母或漢字 isPostCode: /^[\d-]*$/i, // 是否郵編 isNumAlphaUline: /^[0-9a-zA-Z_]*$/, // 是否數字、字母或下劃線 isNumAndThanZero: /^([1-9]\d*(\.\d+)?|0)$/, // 是否爲整數且大於0/^[1-9]\d*(\.\d+)?$/ isNormalEncode: /^(\w||[\u4e00-\u9fa5]){0,}$/, // 是否爲非特殊字符(包括數字字母下劃線中文) isTableName: /^[a-zA-Z][A-Za-z0-9#$_-]{0,29}$/, // 表名 isInt: /^-?\d+$/, // 整數 isTableOtherName: /^[\u4e00-\u9fa5]{0,20}$/, // 別名 isText_30: /^(\W|\w{1}){0,30}$/, // 匹配30個字符,字符可使字母、數字、下劃線、非字母,一個漢字算1個字符 isText_50: /^(\W|\w{1}){0,50}$/, // 匹配50個字符,字符可使字母、數字、下劃線、非字母,一個漢字算1個字符 isText_20: /^(\W|\w{1}){0,20}$/, // 匹配20個字符,字符可使字母、數字、下劃線、非字母,一個漢字算1個字符 isText_100: /^(\W|\w{1}){0,100}$/, // 匹配100個字符,字符可使字母、數字、下劃線、非字母,一個漢字算1個字符 isText_250: /^(\W|\w{1}){0,250}$/, // 匹配250個字符,字符可使字母、數字、下劃線、非字母,一個漢字算1個字符 isNotChina: /^[^\u4e00-\u9fa5]{0,}$/, // 不爲中文 IDcard: /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/, // 身份證 IDcardAndAdmin: /^(([1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X))|(admin))$/, // 身份證或者是admin帳號 IDcardTrim: /^\s*(([1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3})|([1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X))|(admin))\s*$/, // 身份證 num1: /^[1-9]*$/, // 數字 imgType: /image\/(png|jpg|jpeg|gif)$/, // 上傳圖片類型 isChina: /^[\u4e00-\u9fa5]{2,8}$/, isNozeroNumber: /^\+?[1-9]\d*$/, // 大於零的正整數 float: /^\d+(\.?|(\.\d+)?)$/, // 匹配正整數或者小數 或者0.這個特殊值 htmlbody:/<body[^>]*>((.|[\n\r])*)<\/body>/im,// 獲取請求頁面地址body內容 }
export const verifySfz = (sfz) => { if (sfz.length !== 18) return false; const a_i = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; const a_last = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"]; let sum = sfz .slice(0, -1) .split("") .reduce((a, n, i) => { return a + n * a_i[i]; }, 0); return sfz.substr(-1) === a_last[sum % 11]; }