icemilk
Version:
Shanghai jinbaozheng easy network technology Co.,Ltd sdk
172 lines (152 loc) • 3.96 kB
text/typescript
/**
* Created by cuppi on 2016/12/14.
*/
/**
* 字符串工具类
*/
class StringTool {
/**
* 校验是否为手机号码
* @param mobile 手机号码
* @returns 结果
*/
static isMobile(mobile: string): boolean {
return (/^1[1234567890]\d{9}$/.test(mobile));
}
/**
* 校验是否为电话号码
* @param phone 电话号码
* @returns 结果
*/
static isPhoneNumber(phone: string): boolean {
return /(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}/.test(phone);
}
/**
* 检验是否为邮箱
* @param email 邮箱
* @returns 结果
*/
static isEmail(email: string): boolean {
return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(email);
}
/**
* 校验是否为空字符串
* @param string 字符串
* @returns 结果
*/
static isEmpty(string: string): boolean {
return !(string && string !== '');
}
/**
* 校验是否为验证码
* @description 0~9 6位数字
* @param verifyCode 验证码
* @returns 结果
*/
static isVerifyCode(verifyCode: string): boolean {
return (/^[0-9]{6}$/.test(verifyCode));
}
/**
* 校验是否为密码
* @param password 密码
* @param minLength 最小长度
* @param maxLength 最大长度
* @returns 结果
*/
static isPassword(password: string, minLength: number, maxLength: number): boolean {
if (minLength !== undefined && maxLength !== undefined) {
return new RegExp("^[a-zA-Z0-9]{" +
minLength + "," + maxLength +
"}$").test(password);
}
return (/^[a-zA-Z0-9]{6,14}$/.test(password));
}
/**
* 去除数字字符串左边的补位0
* @param c 数字字符串
* @returns {*}
*/
static numberRemoveLeftZero(c: string): string{
if (/^[0-9]*$/.test(c)) {
return Number.parseInt(c) + '';
}
return c;
}
/**
* 通过asc得出字符数值
* @param ascChar asc字符
* @returns 数值 A=0; B=1;
*/
static numberFromASC(ascChar: string): number {
let asc = ascChar.charCodeAt(0);
if (asc >= 65 && asc <= 90) {
asc -= 65;
} else if (asc >= 97 && asc <= 122) {
asc -= 97;
} else if (asc >= 48 && asc <= 57) {
asc -= 48;
} else {
asc = 0;
}
return asc;
}
/**
* 转换字符串到数字
* @param string 字符串
* @param force 是否强制转换非数字字符 (即为26进制数字)
* @param offset 非数字时的初始值
* @returns 数值
*/
static numberFromString(string:string, force: boolean, offset: number = 0): number {
if (/^[0-9]*$/.test(string)) {
return Number.parseInt(string);
}
let sum = offset ? offset : 0;
if (force) {
for (let i = string.length - 1, radix = 1; i >= 0; i--, radix = radix * 26) {
sum += StringTool.numberFromASC(string[i]) * radix;
}
}
return sum;
}
/**
* 清除所有空格字符
* @param string 字符串
* @returns 结果字符串
*/
static clearSpace(string: string): string {
// 过滤空格
return string.replace(/\s+/g, '');
}
/**
* 清除所有逗号
* @param string 字符串
* @returns 结果字符串
*/
static clearComma(string: string): string {
// 过滤空格
return string.replace(/\u002c+/g, '').replace(/,+/g, '');
}
/**
* 清除所有竖线
* @param string 字符串
* @returns 结果字符串
*/
static clearVertical(string: string): string {
// 过滤空格
return string.replace(/\|+/g, '');
}
/**
* 清除所有特殊字符
* @description 即空格 逗号 及竖线
* @param string 字符串
* @returns 结果字符串
*/
static clearClutter(string: string): string {
let clearString = StringTool.clearSpace(string);
clearString = StringTool.clearComma(clearString);
clearString = StringTool.clearVertical(clearString);
return clearString;
}
}
export default StringTool;