前端js常用正则

1.只能输入数字、大小写、汉字
str.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g, "")
2.金额栏位常用

        val.replace(/[^\d.]/g, "") // 清除“数字”和“.”以外的字符
        .replace(/\.{2,}/g, ".") // 只保留第一个. 清除多余的
        .replace(".", "$#$")
        .replace(/\./g, "")
        .replace("$#$", ".")
        .replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3"); // 只能输入两个小数
3.输入的不是数字替换成空
str.replace(/[^\d]/g, "")
4.脱敏
str.replace(/^(\d{3})\d+(\d{4})$/, "$1***$2")
5.手机号
let reg = 11 && /^((10|11|12|13|16|19|14|15|17|18)[0-9]{1}\d{8})$/;
let reg = /^1[0-9]{10}$/;
6.金额格式化
str.replace(/\d{1,3}(?=(\d{3})+$)/g,'$&,')
同
str.replace(/(\d)(?=(?:\d{3})+$)/g, "$1,")
7.url 格式化
  parseUrlValues(url) {
            const values = {};
            url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) {
                values[key] = value;
            });
            return values;
        }
8.去空、加标签
let getTemp = () => {
    let listContent = content.split('\n');
    // 去空
    for (let i = listContent.length - 1; i >= 0; i--) {
        if (trim(listContent[i]).length === 0) {
            listContent.splice(i, 1);
        }
    }
    // 加标签
    for (let i = 0; i < listContent.length; i++) {
        if (/\[[a-zA-Z0-9_\,]*\]/g.test(listContent[i])) {
            listContent[i] = listContent[i].replace(/(\[[a-zA-Z_\,]*\])(.*)/g, function (val) {
                let strClass = val.replace(/(\[[a-zA-Z_\,]*\])(.*)/g, '$1').replace(/(\[)/, '').replace(/(\])/, '').replace(/\,/g, ' ');
                let content = val.replace(/(\[[a-zA-Z_\,]*\])(.*)/g, '$2');
                if (content.indexOf('<table>') === 0) {
                    return content
                } else {
                    return `<p class="${strClass}">${content}</p>`;
                }
            });
        } else {
            listContent[i] = `<p>${listContent[i]}</p>`
        }
    }
    return {title, content: listContent};
};
9.日期格式化(例:20200929)
str.replace(/^(\d{4})(\d{2})(\d{2})$/, '$1/$2/$3') 
str.replace(/(\d{4})(\d\d)(\d\d)/, "$1-$2-$3");
str.replace(/^(\d{4})(\d{2})(\d{2})$/,'$1年$2月$3日')
10.金额转为大写
 toChineseMoney(n) {
        if (Number(n) === 0) {
            return '零元整'
        }
        if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)) return "数据非法";
        let unit = "京亿万仟佰拾兆万仟佰拾亿仟佰拾万仟佰拾元角分", str = "";
        n += "00";
        let p = n.indexOf('.');
        if (p >= 0)
            n = n.substring(0, p) + n.substr(p + 1, 2);
        unit = unit.substr(unit.length - n.length);
        for (let i = 0; i < n.length; i++) str += '零壹贰叁肆伍陆柒捌玖'.charAt(n.charAt(i)) + unit.charAt(i);
        return str.replace(/零(仟|佰|拾|角)/g, "零")
            .replace(/(零)+/g, "零")
            .replace(/零(兆|万|亿|元)/g, "$1")
            .replace(/(兆|亿)万/g, "$1")
            .replace(/(京|兆)亿/g, "$1")
            .replace(/(京)兆/g, "$1")
            .replace(/(京|兆|亿|仟|佰|拾)(万?)(.)仟/g, "$1$2零$3仟")
            .replace(/^元零?|零分/g, "")
            .replace(/(元|角)$/g, "$1整");
    },
11.给数字加逗号,并默认保留两位小数
function formatNumberMoney(num, nozero) {
    num = (Number(num) || 0).toString();
    let numInt = num.split('.')[0].replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
    if (num.split('.')[1]) {
        let numDec = num.split('.')[1].substr(0, 2);
        if (numDec.length === 2 || nozero) {
            return numInt + '.' + numDec;
        }
        else if (numDec.length === 1) {
            return numInt + '.' + numDec + '0';
        }
    } else {
        if (nozero) {
            return numInt;
        }
        else {
            return numInt + '.00';
        }
    }
}
12. 6到20位数字+字母组合
let reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/;
13.邮箱正则
let reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
14.身份证号码
let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
15.匹配中文
let reg = /^[\u4e00-\u9fa5]*$/;
16.输入数字且保留2位小数
let reg = /^\d+(\.\d{0,2})?$/;
17.输入框限制输入中文
<input onkeyup="value=value.replace([\u4e00-\u9fa5]/g,'')" />
18.微信号正则
let reg = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;
19.QQ号码正则
let reg = /^[1-9][0-9]{4,10}$/;
20.区号+座机号码+分机号码
let reg="^(0[0-9]{2,3}/-)?([2-9][0-9]{6,7})+(/-[0-9]{1,4})?$"
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值