正则表达式

1. 正向预查

1.1 千分位分隔符

例: 1000000 => 1,000,000

var reg = /(?=(\B)(\d{3})+$)/g;
var str = '1000000';
str.replace(reg,',');

正则解释: 主体字符串为空字符串,匹配后面是以非单词边界且是3的倍数个数字结尾的空字符串,然后将其替换为逗号

2. 反向预查

2.1 匹配前面是aa的字符串,并替换为-

例: aabbccbbaadd => aa-bcc-baa-d

var reg = /(?<=aa)\w/g;
var str = 'aabbccbbaadd';
str.replace(reg,'-');

3. 模板替换

3.1 模板替换原理

var str = `收款人: {{name}}  收款金额: {{money}}`;
var reg = /{{(.*?)}}/g;
var resStr = str.replace(reg, function(matchStr, key){
	// matchStr 表示匹配到的字符串 key 表示匹配的子表达式(可传任意个)
	return {
		name: '张三',
		money: '1000',
	}[key]
})

3.2 简易模板引擎

<script type="text/html" id="tpl">
	<h1>{{title}}</h1>
	<p>{{text}}</p>
	<div>{{info}}</div>
</script>

<script>
  var tpl = document.querySelector("#tpl");
  var body = document.body;
  var reg = /{{(.*?)}}/g; // ? 表示非贪婪模式
  var obj = {
    title: "这是一个简单的模板引擎",
    text: "完成了很开心",
    info: "哈哈哈哈哈哈哈哈哈",
  };
  body.innerHTML = tpl.innerHTML.replace(reg, function (matchStr, key) {
    return obj[key];
  });
</script>

4. 常用正则

4.1 验证身份证

基本规则:开头为非0数字,后面接任意5位数字;年份以18,19,20开头;月份1-9月以0开头;日期01-31号;后接3位数字,结尾为数字或者X,总共18位.

var reg = /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])([0-2][1-9]|10|20|30|31)\d{3}[\d|X]$/;

4.2 验证密码

基本规则:至少包含6位,且包含大小写,数字,特殊字符.

var reg = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[~!@#$%^&*()-+_=?]).*$/

4.3 验证图片格式

基本规则:格式为jpg,png,gif等.

var reg = /(\.jpg|\.png|.gif)/

有些图片后缀存在其他参数,因此可以不用判断结尾

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值