From e79a5eb40825f67e0b65243b2b397b67e962b2f8 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期四, 21 三月 2024 13:30:40 +0800
Subject: [PATCH] UI上下文展示引擎,参照组件

---
 Source/ProjectWeb/src/util/validate.js |  547 +++++++++++++++++++++++++++++++-----------------------
 1 files changed, 314 insertions(+), 233 deletions(-)

diff --git a/Source/ProjectWeb/src/util/validate.js b/Source/ProjectWeb/src/util/validate.js
index fb407d8..c4e4de8 100644
--- a/Source/ProjectWeb/src/util/validate.js
+++ b/Source/ProjectWeb/src/util/validate.js
@@ -1,254 +1,335 @@
 /**
- * Created by jiachenpan on 16/11/18.
+ * 楠岃瘉鐧惧垎姣旓紙涓嶅彲浠ュ皬鏁帮級
+ * @param val 褰撳墠鍊煎瓧绗︿覆
+ * @returns 杩斿洖澶勭悊鍚庣殑瀛楃涓�
  */
-
-export function isvalidUsername(str) {
-    const valid_map = ['admin', 'editor']
-    return valid_map.indexOf(str.trim()) >= 0
-}
-
-/* 鍚堟硶uri*/
-export function validateURL(textval) {
-    const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
-    return urlregex.test(textval)
-}
+export const verifyNumberPercentage = (val) => {
+  const patternSpace = /(^\s*)|(\s*$)/g;
+  const patternNum = /[^\d]/g;
+  // 鍖归厤绌烘牸
+  let v = val.replace(patternSpace, "");
+  // 鍙兘鏄暟瀛楀拰灏忔暟鐐癸紝涓嶈兘鏄叾浠栬緭鍏�
+  v = v.replace(patternNum, "");
+  // 涓嶈兘浠�0寮�濮�
+  v = v.replace(/^0/g, "");
+  // 鏁板瓧瓒呰繃100锛岃祴鍊兼垚鏈�澶у��100
+  v = v.replace(/^[1-9]\d\d{1,3}$/, "100");
+  // 杩斿洖缁撴灉
+  return v;
+};
 /**
- * 閭
- * @param {*} s
+ * 楠岃瘉鐧惧垎姣旓紙鍙互灏忔暟锛�
+ * @param val 褰撳墠鍊煎瓧绗︿覆
+ * @returns 杩斿洖澶勭悊鍚庣殑瀛楃涓�
  */
-export function isEmail(s) {
-    return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
-}
-
+export const verifyNumberPercentageFloat = (val) => {
+  let v = verifyNumberIntegerAndFloat(val);
+  // 鏁板瓧瓒呰繃100锛岃祴鍊兼垚鏈�澶у��100
+  v = v.replace(/^[1-9]\d\d{1,3}$/, "100");
+  // 瓒呰繃100涔嬪悗涓嶇粰鍐嶈緭鍏ュ��
+  v = v.replace(/^100\.$/, "100");
+  // 杩斿洖缁撴灉
+  return v;
+};
 /**
- * 鎵嬫満鍙风爜
- * @param {*} s
+ * 灏忔暟鎴栨暣鏁�(涓嶅彲浠ヨ礋鏁�)
+ * @param val 褰撳墠鍊煎瓧绗︿覆
+ * @returns 杩斿洖澶勭悊鍚庣殑瀛楃涓�
  */
-export function isMobile(s) {
-    return /^1[0-9]{10}$/.test(s)
-}
+export const verifyNumberIntegerAndFloat = (val) => {
+  // 鍖归厤绌烘牸
+  let v = val.replace(/(^\s*)|(\s*$)/g, "");
+  // 鍙兘鏄暟瀛楀拰灏忔暟鐐癸紝涓嶈兘鏄叾浠栬緭鍏�
+  v = v.replace(/[^\d.]/g, "");
+  // 浠�0寮�濮嬪彧鑳借緭鍏ヤ竴涓�
+  v = v.replace(/^0{2}$/g, "0");
+  // 淇濊瘉绗竴浣嶅彧鑳芥槸鏁板瓧锛屼笉鑳芥槸鐐�
+  v = v.replace(/^\./g, "");
+  // 灏忔暟鍙兘鍑虹幇1浣�
+  v = v.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
+  // 灏忔暟鐐瑰悗闈繚鐣�2浣�
+  v = v.replace(/^(\\-)*(\d+)\.(\d\d).*$/, "$1$2.$3");
+  // 杩斿洖缁撴灉
+  return v;
+};
+// 姝f暣鏁伴獙璇�
+export const verifiyNumberInteger = (val) => {
+  const pattern = /(^\s*)|(\s*$)/g;
+  // 鍖归厤绌烘牸
+  let v = val.replace(pattern, "");
+  // 鍘绘帀 '.' , 闃叉璐磋创鐨勬椂鍊欏嚭鐜伴棶棰� 濡� 0.1.12.12
+  v = v.replace(/[\\.]*/g, "");
+  // 鍘绘帀浠� 0 寮�濮嬪悗闈㈢殑鏁�, 闃叉璐磋创鐨勬椂鍊欏嚭鐜伴棶棰� 濡� 00121323
+  v = v.replace(/(^0[\d]*)$/g, "0");
+  // 棣栦綅鏄�0,鍙兘鍑虹幇涓�娆�
+  v = v.replace(/^0\d$/g, "0");
+  // 鍙尮閰嶆暟瀛�
+  v = v.replace(/[^\d]/g, "");
+  // 杩斿洖缁撴灉
+  return v;
+};
+// 鍘绘帀涓枃鍙婄┖鏍�
+export const verifyCnAndSpace = (val) => {
+  const pattern = /[\u4e00-\u9fa5\s]+/g;
+  // 鍖归厤涓枃涓庣┖鏍�
+  let v = val.replace(pattern, "");
+  // 鍖归厤绌烘牸
+  v = v.replace(/(^\s*)|(\s*$)/g, "");
+  // 杩斿洖缁撴灉
+  return v;
+};
+// 鍘绘帀鑻辨枃鍙婄┖鏍�
+export const verifyEnAndSpace = (val) => {
+  const pattern = /[a-zA-Z]+/g;
+  const patternSpace = /(^\s*)|(\s*$)/g;
+  // 鍖归厤鑻辨枃涓庣┖鏍�
+  let v = val.replace(pattern, "");
+  // 鍖归厤绌烘牸
+  v = v.replace(patternSpace, "");
+  // 杩斿洖缁撴灉
+  return v;
+};
+// 绂佹杈撳叆绌烘牸
+export const verifyAndSpace = (val) => {
+  const pattern = /(^\s*)|(\s*$)/g;
+  // 鍖归厤绌烘牸
+  let v = val.replace(pattern, "");
+  // 杩斿洖缁撴灉
+  return v;
+};
+// 閲戦鐢� `,` 鍖哄垎寮�
+export const verifyNumberComma = (val) => {
+  const pattern = /\B(?=(\d{3})+(?!\d))/g;
+  // 璋冪敤灏忔暟鎴栨暣鏁�(涓嶅彲浠ヨ礋鏁�)鏂规硶
+  let v = verifyNumberIntegerAndFloat(val);
+  // 瀛楃涓茶浆鎴愭暟缁�
+  v = v.toString().split(".");
+  // \B 鍖归厤闈炲崟璇嶈竟鐣岋紝涓よ竟閮芥槸鍗曡瘝瀛楃鎴栬�呬袱杈归兘鏄潪鍗曡瘝瀛楃
+  v[0] = v[0].replace(pattern, ",");
+  // 鏁扮粍杞瓧绗︿覆
+  v = v.join(".");
+  // 杩斿洖缁撴灉
+  return v;
+};
+// 鍖归厤鏂囧瓧鍙樿壊锛堟悳绱㈡椂锛�
+export const verifyTextColor = (val, text = "", color = "red") => {
+  // 杩斿洖鍐呭锛屾坊鍔犻鑹�
+  let v = text.replace(
+    new RegExp(val, "gi"),
+    `<span style='color: ${color}'>${val}</span>`
+  );
+  // 杩斿洖缁撴灉
+  return v;
+};
+// 鏁板瓧杞腑鏂囧ぇ鍐�
+export const verifyNumberCnUppercase = (
+  val,
+  unit = "浠熶桨鎷句嚎浠熶桨鎷句竾浠熶桨鎷惧厓瑙掑垎",
+  v = ""
+) => {
+  // 褰撳墠鍐呭瀛楃涓叉坊鍔� 2涓�0锛屼负浠�涔�??
+  val += "00";
+  // 杩斿洖鏌愪釜鎸囧畾鐨勫瓧绗︿覆鍊煎湪瀛楃涓蹭腑棣栨鍑虹幇鐨勪綅缃紝娌℃湁鍑虹幇锛屽垯璇ユ柟娉曡繑鍥� -1
+  let lookup = val.indexOf(".");
+  // substring锛氫笉鍖呭惈缁撴潫涓嬫爣鍐呭锛宻ubstr锛氬寘鍚粨鏉熶笅鏍囧唴瀹�
+  if (lookup >= 0)
+    val = val.substring(0, lookup) + val.substring(lookup + 1, 2);
+  // 鏍规嵁鍐呭 val 鐨勯暱搴︼紝鎴彇杩斿洖瀵瑰簲澶у啓
+  unit = unit.substring(unit.length - val.length);
+  // 寰幆鎴彇鎷兼帴澶у啓
+  for (let i = 0; i < val.length; i++) {
+    v +=
+      "闆跺9璐板弫鑲嗕紞闄嗘煉鎹岀帠".substring(val.substring(i, 1), 1) +
+      unit.substring(i, 1);
+  }
+  // 姝e垯澶勭悊
+  v = v
+    .replace(/闆惰闆跺垎$/, "鏁�")
+    .replace(/闆禰浠熶桨鎷綸/g, "闆�")
+    .replace(/闆秢2,}/g, "闆�")
+    .replace(/闆�([浜縷涓嘳)/g, "$1")
+    .replace(/闆�+鍏�/, "鍏�")
+    .replace(/浜块浂{0,3}涓�/, "浜�")
+    .replace(/^鍏�/, "闆跺厓");
+  // 杩斿洖缁撴灉
+  return v;
+};
+// 鎵嬫満鍙风爜
+export const verifyPhone = (val) => {
+  const petter =
+    /^((12[0-9])|(13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\d{8}$/;
+  // false: 鎵嬫満鍙风爜涓嶆纭�
+  if (!petter.test(val)) return false;
+  // true: 鎵嬫満鍙风爜姝g‘
+  else return true;
+};
 
-/**
- * 鐢佃瘽鍙风爜
- * @param {*} s
- */
-export function isPhone(s) {
-    return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
-}
+// 鍥藉唴鐢佃瘽鍙风爜
+export const verifyTelPhone = (val) => {
+  const petter = /\d{3}-\d{8}|\d{4}-\d{7}/;
+  // false: 鍥藉唴鐢佃瘽鍙风爜涓嶆纭�
+  if (!petter.test(val)) return false;
+  // true: 鍥藉唴鐢佃瘽鍙风爜姝g‘
+  else return true;
+};
 
-/**
- * URL鍦板潃
- * @param {*} s
- */
-export function isURL(s) {
-    return /^http[s]?:\/\/.*/.test(s)
-}
+// 鐧诲綍璐﹀彿 (瀛楁瘝寮�澶达紝鍏佽5-16瀛楄妭锛屽厑璁稿瓧姣嶆暟瀛椾笅鍒掔嚎)
+export const verifyAccount = (val) => {
+  const petter = /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/;
+  // false: 鐧诲綍璐﹀彿涓嶆纭�
+  if (!petter.test(val)) return false;
+  // true: 鐧诲綍璐﹀彿姝g‘
+  else return true;
+};
 
-/* 灏忓啓瀛楁瘝*/
-export function validateLowerCase(str) {
-    const reg = /^[a-z]+$/
-    return reg.test(str)
-}
+// 瀵嗙爜 (浠ュ瓧姣嶅紑澶达紝闀垮害鍦�6~16涔嬮棿锛屽彧鑳藉寘鍚瓧姣嶃�佹暟瀛楀拰涓嬪垝绾�)
+export const verifyPassword = (val) => {
+  const petter = /^[a-zA-Z]\w{5,15}$/;
+  // false: 瀵嗙爜涓嶆纭�
+  if (!petter.test(val)) return false;
+  // true: 瀵嗙爜姝g‘
+  else return true;
+};
 
-/* 澶у啓瀛楁瘝*/
-export function validateUpperCase(str) {
-    const reg = /^[A-Z]+$/
-    return reg.test(str)
-}
+// 寮哄瘑鐮� (瀛楁瘝+鏁板瓧+鐗规畩瀛楃锛岄暱搴﹀湪6-16涔嬮棿)
+export const verifyPasswordPowerful = (val) => {
+  const petter =
+    /^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&\\.*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&\\.*]+$)(?![\d!@#$%^&\\.*]+$)[a-zA-Z\d!@#$%^&\\.*]{6,16}$/;
+  // false: 寮哄瘑鐮佷笉姝g‘
+  if (!petter.test(val)) return false;
+  // true: 寮哄瘑鐮佹纭�
+  else return true;
+};
 
-/* 澶у皬鍐欏瓧姣�*/
-export function validatAlphabets(str) {
-    const reg = /^[A-Za-z]+$/
-    return reg.test(str)
-}
-/*楠岃瘉pad杩樻槸pc*/
-export const vaildatePc = function() {
-        const userAgentInfo = navigator.userAgent;
-        const Agents = ["Android", "iPhone",
-            "SymbianOS", "Windows Phone",
-            "iPad", "iPod"
-        ];
-        let flag = true;
-        for (var v = 0; v < Agents.length; v++) {
-            if (userAgentInfo.indexOf(Agents[v]) > 0) {
-                flag = false;
-                break;
-            }
-        }
-        return flag;
-    }
-    /**
-     * validate email
-     * @param email
-     * @returns {boolean}
-     */
-export function validateEmail(email) {
-    const re = /^(([^<>()\\[\]\\.,;:\s@"]+(\.[^<>()\\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
-    return re.test(email)
-}
+// 瀵嗙爜寮哄害
+export const verifyPasswordStrength = (val) => {
+  const weak = /^(?:\d+|[a-zA-Z]+|[!@#$%^&\\.*]+){6,16}$/;
+  const centre =
+    /^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&\\.*]+$)[a-zA-Z\d!@#$%^&\\.*]{6,16}$/;
+  const strong =
+    /^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&\\.*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&\\.*]+$)(?![\d!@#$%^&\\.*]+$)[a-zA-Z\d!@#$%^&\\.*]{6,16}$/;
+  let v = "";
+  // 寮憋細绾暟瀛楋紝绾瓧姣嶏紝绾壒娈婂瓧绗�
+  if (weak.test(val)) v = "寮�";
+  // 涓細瀛楁瘝+鏁板瓧锛屽瓧姣�+鐗规畩瀛楃锛屾暟瀛�+鐗规畩瀛楃
+  if (centre.test(val)) v = "涓�";
+  // 寮猴細瀛楁瘝+鏁板瓧+鐗规畩瀛楃
+  if (strong.test(val)) v = "寮�";
+  // 杩斿洖缁撴灉
+  return v;
+};
 
-/**
- * 鍒ゆ柇韬唤璇佸彿鐮�
- */
-export function cardid(code) {
-    let list = [];
-    let result = true;
-    let msg = '';
-    var 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 (!validatenull(code)) {
-        if (code.length == 18) {
-            if (!code || !/(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(code)) {
-                msg = "璇佷欢鍙风爜鏍煎紡閿欒";
-            } else if (!city[code.substr(0, 2)]) {
-                msg = "鍦板潃缂栫爜閿欒";
-            } else {
-                //18浣嶈韩浠借瘉闇�瑕侀獙璇佹渶鍚庝竴浣嶆牎楠屼綅
-                code = code.split('');
-                //鈭�(ai脳Wi)(mod 11)
-                //鍔犳潈鍥犲瓙
-                var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
-                //鏍¢獙浣�
-                var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2, 'x'];
-                var sum = 0;
-                var ai = 0;
-                var wi = 0;
-                for (var i = 0; i < 17; i++) {
-                    ai = code[i];
-                    wi = factor[i];
-                    sum += ai * wi;
-                }
-                if (parity[sum % 11] != code[17]) {
-                    msg = "璇佷欢鍙风爜鏍¢獙浣嶉敊璇�";
-                } else {
-                    result = false;
-                }
+// IP鍦板潃
+export const verifyIPAddress = (val) => {
+  const petter =
+    /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
+  // false: IP鍦板潃涓嶆纭�
+  if (!petter.test(val)) return false;
+  // true: IP鍦板潃姝g‘
+  else return true;
+};
 
-            }
-        } else {
-            msg = "璇佷欢鍙风爜闀垮害涓嶄负18浣�";
-        }
+// 閭
+export const verifyEmail = (val) => {
+  const petter =
+    /^(([^<>()\\[\]\\.,;:\s@"]+(\.[^<>()\\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
+  // false: 閭涓嶆纭�
+  if (!petter.test(val)) return false;
+  // true: 閭姝g‘
+  else return true;
+};
 
-    } else {
-        msg = "璇佷欢鍙风爜涓嶈兘涓虹┖";
-    }
-    list.push(result);
-    list.push(msg);
-    return list;
-}
-/**
- * 鍒ゆ柇鎵嬫満鍙风爜鏄惁姝g‘
- */
-export function isvalidatemobile(phone) {
-    let list = [];
-    let result = true;
-    let msg = '';
-    var isPhone = /^0\d{2,3}-?\d{7,8}$/;
-    //澧炲姞134 鍑忓皯|1349[0-9]{7}锛屽鍔�181,澧炲姞145锛屽鍔�17[678]
-    if (!validatenull(phone)) {
-        if (phone.length == 11) {
-            if (isPhone.test(phone)) {
-                msg = '鎵嬫満鍙风爜鏍煎紡涓嶆纭�';
-            } else {
-                result = false;
-            }
-        } else {
-            msg = '鎵嬫満鍙风爜闀垮害涓嶄负11浣�';
-        }
-    } else {
-        msg = '鎵嬫満鍙风爜涓嶈兘涓虹┖';
-    }
-    list.push(result);
-    list.push(msg);
-    return list;
-}
-/**
- * 鍒ゆ柇濮撳悕鏄惁姝g‘
- */
-export function validatename(name) {
-    var regName = /^[\u4e00-\u9fa5]{2,4}$/;
-    if (!regName.test(name)) return false;
-    return true;
-}
-/**
- * 鍒ゆ柇鏄惁涓烘暣鏁�
- */
-export function validatenum(num, type) {
-    let regName = /[^\d.]/g;
-    if (type == 1) {
-        if (!regName.test(num)) return false;
-    } else if (type == 2) {
-        regName = /[^\d]/g;
-        if (!regName.test(num)) return false;
-    }
-    return true;
-}
-/**
- * 鍒ゆ柇鏄惁涓哄皬鏁�
- */
-export function validatenumord(num, type) {
-    let regName = /[^\d.]/g;
-    if (type == 1) {
-        if (!regName.test(num)) return false;
-    } else if (type == 2) {
-        regName = /[^\d.]/g;
-        if (!regName.test(num)) return false;
-    }
-    return true;
-}
+// 韬唤璇�
+export const verifyIdCard = (val) => {
+  const petter =
+    /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
+  // false: 韬唤璇佷笉姝g‘
+  if (!petter.test(val)) return false;
+  // true: 韬唤璇佹纭�
+  else return true;
+};
+
+// 濮撳悕
+export const verifyFullName = (val) => {
+  const petter = /^[\u4e00-\u9fa5]{1,6}(路[\u4e00-\u9fa5]{1,6}){0,2}$/;
+  // false: 濮撳悕涓嶆纭�
+  if (!petter.test(val)) return false;
+  // true: 濮撳悕姝g‘
+  else return true;
+};
+
+// 閭斂缂栫爜
+export const verifyPostalCode = (val) => {
+  const petter = /^[1-9][0-9]{5}$/;
+  // false: 閭斂缂栫爜涓嶆纭�
+  if (!petter.test(val)) return false;
+  // true: 閭斂缂栫爜姝g‘
+  else return true;
+};
+
+// url
+export const verifyUrl = (val) => {
+  const petter =
+    /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i;
+  // false: url涓嶆纭�
+  if (!petter.test(val)) return false;
+  // true: url姝g‘
+  else return true;
+};
+
+// 杞︾墝鍙�
+export const verifyCarNum = (val) => {
+  const petter =
+    /^(([浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹绮ら潚钘忓窛瀹佺惣浣块][A-Z](([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹绮ら潚钘忓窛瀹佺惣浣块][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9鎸傚璀︽腐婢充娇棰哴))$/;
+  // false: 杞︾墝鍙蜂笉姝g‘
+  if (!petter.test(val)) return false;
+  // true锛氳溅鐗屽彿姝g‘
+  else return true;
+};
+// 鏂滄潬
+export const verifySlash = (val) => {
+  const regex = /\//g;
+  if (!regex.test(val)) return false;
+  else return true;
+};
+// 瀛楃涓诧紝鏁扮粍锛屽璞¢潪绌�
+export const verifyNotNull = (val) => {
+  if (val === null || val === undefined || val ==="") {
+    return false;
+  }
+  if (typeof val === "string") {
+    return val.trim().length !== 0;
+  }
+  if (Array.isArray(val)) {
+    return val.length !== 0;
+  }
+  if (typeof val === "object" && val !== null) {
+    return Object.keys(val).length !== 0;
+  }
+  return true;
+};
+
+export const verifyNull = (val) => {
+  return !verifyNotNull(val);
+};
 /**
  * 鍒ゆ柇鏄惁涓虹┖
  * 鍙互鍒ゆ柇鏁扮粍鍜屽璞� 濡傚垽鏂�"null"銆�"undefined"涔熶細杩斿洖鏄┖
  */
 export function validatenull(val) {
-    if (typeof val == 'boolean') {
-        return false;
-    }
-    if (typeof val == 'number') {
-        return false;
-    }
-    if (val instanceof Array) {
-        if (val.length == 0) return true;
-    } else if (val instanceof Object) {
-        if (JSON.stringify(val) === '{}') return true;
-    } else {
-        if (val == 'null' || val == null || val == 'undefined' || val == undefined || val == '') return true;
-        return false;
-    }
+  if (typeof val == 'boolean') {
     return false;
+  }
+  if (typeof val == 'number') {
+    return false;
+  }
+  if (val instanceof Array) {
+    if (val.length == 0) return true;
+  } else if (val instanceof Object) {
+    if (JSON.stringify(val) === '{}') return true;
+  } else {
+    if (val == 'null' || val == null || val == 'undefined' || val == undefined || val == '') return true;
+    return false;
+  }
+  return false;
 }

--
Gitblit v1.9.3