zoukankan      html  css  js  c++  java
  • 带参数的正则匹配

    之前正则一般用到的情况都是直接写死的 也就是比如想要代替某一段字符串中的[length]就这样写:

    str.replace(/\[ilength]/g,''));
    

    这样。

    但是如果需要参数组织正则呢?怎么写?

    我总结了一个方法:

    如下:

    function changeModelToHtml(template,oSource){
    		for(var i in oSource){
    			var reg = new RegExp("{"+i+"}","gim");
    			template = template.replace(reg,oSource[i]);
    			reg = null;
    		}
    		return template;
    	}
    

    template是包含所谓要替换内容的原始一个字符串。

    oSource是一个Object对象里面是一群key,value

    还有一个方法是我同事整理出来的我也贴出来:

    var Source={"sty":"ss","number":1,"name":"jackie"};
    var stemplate ="<li class='{sty}'><i>{number}</i>{name}</li>";
     console.log(stemplate);
    var reg=/{(.+?)}/gim;
     stemplate.replace(reg,function(obj){
        stemplate= stemplate.replace(obj,Source[RegExp.$1]);
     }) ;
    console.log(stemplate);

    实现的是一样的效果。

    大家看看何种方法好或者不好。

    欢迎拍砖。

  • 相关阅读:
    js 变量的声明能提升 初始化不会提升
    老公教我写分页
    响应式布局
    闭包优缺点
    正则表达式验证邮箱格式
    DDL表和库管理语言
    DML数据库操作语言
    python实现求第K小
    硬币凑数
    MySQL学习的表单定义
  • 原文地址:https://www.cnblogs.com/blueSkys/p/2837594.html
Copyright © 2011-2022 走看看