/** * 手机号码正则校验 * @param value 需要校验值 * @returns {boolean} */ const phone = (value) => /(^[0-9]{8}$)|(^1[3-9][0-9]{9}$)/.test(value); /** * email 地址校验 * @param value 需要校验值 * @returns {boolean} */ const email = (value) => /^([a-zA-Z0-9\u4e00-\u9fa5]+[_|.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/.test(value); /** * 数值范围校验 * @param min 最小值 * @param max 最大值 * @param value 需要校验值 * @returns {boolean} */ const range = (min, max, value) => value >= min && value <= max; /** * 是否为纯英文 * @param value 需要校验值 * @returns {boolean} */ const en = (value) => /(^[A-Za-z]+$)/.test(value); /** * 是否为纯中文 * @param value 需要校验值 * @returns {boolean} */ const cn = (value) => /(^[\u4e00-\u9fa5]{0,}$)/.test(value); /** * 是否为金钱数字 * @param value 需要校验值 * @returns {boolean} */ const money = (value) => /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/.test(`${value}`); /** * 是否字母数字组合 * @param value 需要校验值 * @returns {boolean} */ const code = (value) => /(^[A-Za-z0-9]+$)/.test(value); /** * 是否为纯数字 * @param value 需要校验值 * @returns {boolean} */ const number = (value) => /^[0-9]+.?[0-9]*$/.test(`${value}`); /** * 是否为 ip 地址 * @param value 需要校验值 * @returns {boolean} */ const ip = (value) => /^(\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])$/.test( value ); /** * 是否为合法 url * @param value 需要校验值 * @returns {boolean} */ const url = (value) => /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/.test(value); // 清除字符串中的空格,用于判断是否为空 function verifyEmpty(value) { return value?.toString().replace(/\s+/g, ''); } // 特殊字符校验 var punctuation = (value) => new RegExp("[`~!@#$^&*()=|{}':;'\\[\\].<>《》/?~!@#¥……&*()——|{}【】‘;:”“'。,、? ]").test(`${value}`); const obj = { phone, email, range, en, cn, money, number, ip, url, verifyEmpty, punctuation }; export default obj;