GitHub

常用校验正则表达式记录

1. 判断不包含某一字符串

/^((?!abc).)*$/.test('abc') //判断是否包含abc 

2.  格式化金钱

function formatNumber(str) {
  return str.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
}

更多方法详见:js,正则实现金钱格式化

 

2.1 去除金额小数点后多余的0

function formatClear(moneyStr) {
  const CLEAR_REG=/(?:\.0*|(\.\d+?)0+)$/;
  return moneyStr.replace(CLEAR_REG, '$1')
}

 

3.  校验手机号

function isTelCode(str) {
    var reg=/^[1][3,4,5,7,8][0-9]{9}$/;
    return reg.test(str); 
}

正则解释:1) 以 1 开头; 2) 第二位可为 3,4,5,7,8 中的任意一位; 3) 最后以 0-9 的 9个整数结尾。

function validateMobile(value) {
    var mobile = value.toString().replace(/(^\s*)|(\s*$)/g, ""); 

    return /^[1][0-9]{10}$/.test(mobile);
}

这个正则匹配就比较宽松了,比较常用。

4. 打码手机号

function maskMobile(mobile) {
    return mobile.replace(/(\d{3})(\d{4})(\d{4})/, '$1****$3');
}

5. 打码用户姓名(只保留最后一个字)

function maskName(name) {
   return name.replace(/.(?=.)/g, '*'); //仅仅匹配 任意字符后跟着任意字符的字符
}

6. 校验邮箱

function IsEmail(str) {
    var reg=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+$/;
    return reg.test(str);
}

 7. 去除字符串两端空格

function trim(str) {    
    return str.replace(/(^\s*)|(\s*$)/g, "");
}

function leftTrim(str) {
    return str.replace(/(^\s*)/g,"");
}

function rightTrim(str) {
     return str.replace(/(\s*$)/g,"");
}

8. 校验密码格式

// 只能是8位以上数字或者字母的组合
function validatePsw(str) {
    return /^[0-9A-Za-z]{8,20}$/.test(str);
}

// 必须是8位到32位由数字、字母的组合
function strictValidatePsw(str) {
    return /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,20}$/.test(str);
}

 9. 校验金额

// 金额必须大于0且为整数或小数,小数点后不超过2位
function validateAmount(amount) {
    return /(?!^0\d*$)^\d{1,16}(\.\d{1,2})?$/.test(amount);
}

// 金额必须大于等于1且为整数或小数,小数点后不超过2位
function validateAmount(amount) {
    return /(?!^0(\.\d*)?$)^\d{1,16}(\.\d{1,2})?$/.test(amount);
}

  这个正则的实现思路主要是用非贪婪模式先排除为 0 的和 0.** 的数

 

posted @ 2018-04-29 16:54  長风  阅读(341)  评论(0编辑  收藏  举报