美文网首页
js工具函数

js工具函数

作者: LingSun | 来源:发表于2020-11-10 11:24 被阅读0次

/**
 * 得到字符总数
 * @param {String} str
 */
export function getChars(str) {
  var i = 0;
  var c = 0.0;
  var unicode = 0;
  var len = 0;
  if (str == "" || str == null) {
    return 0;
  }

  len = str.length;
  for (i = 0; i < len; i++) {
    unicode = str.charCodeAt(i);
    if (unicode < 127) {
      //判断是单字符还是双字符
      c += 1;
    } else {
      //chinese
      c += 2;
    }
  }
  return c;
}

/**
 * 校验字节 是否为 中/英 文
 * @param {*} byte
 * @param {*} lang
 * @returns {Boolean}
 */
function validateByte(byte, lang) {
  // 验证是否是中文
  const testZh = new RegExp("[\u4E00-\u9FA5]+");
  //验证是否是英文
  const testEn = new RegExp("[A-Za-z]+");
  let bool = false;
  switch (lang) {
    case "zh":
      bool = testZh.test(byte);
      break;
    case "en":
      bool = testEn.test(byte);
      break;
  }
  return bool;
}

/**
 * 校验 中/英 文
 * @param {String} str 字符串
 * @param {String} lang zh | en
 * @returns {Boolean}
 */
export function validateLanguage(str, lang) {
  if (_.isNil(lang)) throw "lang is Nil";
  const _lower = lang.toLowerCase();
  if (!["zh", "en"].includes(_lower)) throw "parameter lang is incorrect";
  for (let i = 0; i < str.length; i++) {
    const byte = str[i];
    if (byte !== " " && !validateByte(byte, _lower)) return false;
  }
  return true;
}

/**
 * 获取url 参数
 * @function
 */
export function getQueryString(name, url) {
  let reg = new RegExp("(^|\\?|&)" + name + "=([^&]*)(\\s|&|$)", "i");
// unescape js的解码函数
  if (reg.test(url)) return unescape(RegExp.$2.replace(/\+/g, " "));
}

/**
 * 加密手机号,中间四位
 * @param {string} tel 手机号
 */
export function encryptionPhone(tel) {
  if (!tel) return;
  tel = "" + tel;
  return tel.replace(tel.substring(3, 7), "****");
}

相关文章

网友评论

      本文标题:js工具函数

      本文链接:https://www.haomeiwen.com/subject/ruhtbktx.html