业务中常用的正则表达式

332 阅读1分钟

验证手机号

const reg = /^((1[3-9][0-9])+\d{8})$/

验证用户名

只能是中英文

const reg = /^[a-zA-Z\u4e00-\u9fa5]+$/

验证邮箱

const reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/

验证身份证号

const cardReg = /^[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]$/

验证密码

规则1

新密码需要满足 字母、数字组合,长度为8-50

const reg = /^(?=.*\d)(?=.*[a-zA-Z]).{8,50}$/

规则2

需要满足字母、数字、特殊字符组合, 长度为8-12

const reg = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%&*])[A-Za-z\d!@#$%&*]{8,12}/

验证经纬度

校验经度
// 验证经度 整数部分为0-180小数部分为0到6位
function verifylongitude(longitude) {
   var longreg = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$/;
   if(!longreg.test(longitude)){
       return false;
   }else {
       return true;
   }
}

校验维度
// 验证维度 整数部分为0-90小数部分为0到6位
function verifylatitude(latitude) {
    var latreg = /^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$/;
    if(!latreg.test(latitude)){
        return false;
    } else {
        return true;
    }
}

将富文本中的文字过滤出来

/**
 * 去除富文本的标签
 * @param {*} str
 * @returns
 */
export function removeHTMLTag(value) {
  // 方法一:
  value = value.replace(/\s*/g, ""); // 去掉空格
  value = value.replace(/<[^>]+>/g, ""); // 去掉所有的html标记
  value = value.replace(/↵/g, ""); // 去掉所有的↵符号
  value = value.replace(/[\r\n]/g, ""); // 去掉回车换行

  value = convertIdeogramToNormalCharacter(value);
  return value;
}
// 转意符换成普通字符
function convertIdeogramToNormalCharacter(val) {
  const arrEntities = {
    lt: "<",
    gt: ">",
    amp: "&",
    quot: '"', // 英文引号
    ldquo: '“', // 中文引号
    rdquo: "”", // 中文引号
    mdash: '-', // 破折号 -
    // 空格标记
    nbsp: " ",
    emsp: " ",
    ensp: " ",
    thinsp: " ",
    zwnj: " ",
    zwj: " "
  };
  return val.replace(
    /&(lt|gt|nbsp|amp|quot|ldquo|rdquo|emsp|ensp|thinsp|zwnj|zwj|mdash);/gi,
    function (all, t) {
      return arrEntities[t];
    }
  );
}