/**
* 得到字符总数
* @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), "****");
}
网友评论