js的几个正则方法

132 阅读1分钟

我们经常会需要判断用户的输入以及对一些字符串做判断,正则方法是非常简便的方法,下面列举了几个用正则处理数据的常用方法:

1.判断手机号码

验证手机号码第一位是1和第二位是“3、4、5、6、7、8、9”中以为,然后后面是9位

//单独验证手机号码
/^1[3456789]\d{9}$/ 

// 验证是电话号码或者是手机号码;
/^((\d{3}-\d{8}|\d{4}-\d{7,8})|(1[3|4|5|6|7|8|9][0-9]{9}))$/
2.判断身份证号码

验证身份证号码为15位或者18位,当15位时是全为数字,当是18位时前17位为数字,最后一位是可能为数字或字符“X”

/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
3.判断是否是数字
/^[0-9]\d*$/ 这是判断是否时数字   
//输入框只能输入正整数
oninput="value=value.replace(/^(0+)|[^\d]+/g, '')"
4.正数且保留2位小数数字
/^\d+(\.\d{0,2})?$|^\.\d{1,2}$/  //保留2位小数数字
5.替换HTML标签

要判断富文本框是否有输入内容,用正则/<[^>]*>/g判断标签,用replace替换;
需要去除img标签,因为img标签内容是在标签里面/<(?!img|(\/img>)).*?>/gi

html.replace(/<[^>]*>/g, ''); //去掉所有标签
html.replace(/<(?!img|(\/img>)).*?>/gi, '');//去掉其余标签,保留img标签;
6.数据千位加逗号;

这个是对金额的显示,每三位加逗号;

const thousands = (num)=> {
  var str = num.toString();
  var reg = str.indexOf(".") > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g;
  return str.replace(reg, "$1,");
}
6.获取链接上的参数;

在uniapp中,如果直接用onLoad或者是mounted/onMounted中$route.query获取链接上的参数时,对于参数上的“=”号会丢失,所以用一下这个方法可以解决;

gup(name, url) {
    if (!url) url = location.href;
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(url);
    return results == null ? null : results[1];
},
7.判断邮箱
/[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/
8.验证输入的地址
/^[\u4e00-\u9fa5a-zA-Z0-9]+$/