• JavaScript之正则表达式[应用实例]


    1. 获取信息

    "水资源利用与保护周三第9,10,11节{第1-6周}施浩然3B-302多媒体教室152座信息检索周三第9,10节{第9-12周}谭长拥4A-207多媒体160座{第12周}".match(/{第[d]*[-]*[d]*周}*/gi);
    
    //["{第1-6周}", "{第9-12周}", "{第12周}"]

      与下列正则表达式对比结果:(注意:一个d的意义:是单个阿拉伯数字,不是多个)

    "水资源利用与保护周三第9,10,11节{第1-6周}施浩然3B-302多媒体教室152座信息检索周三第9,10节{第9-12周}谭长拥4A-207多媒体160座{第12周}".match(/{第[d]{1}[-]*[d]{2}周}*/gi);
    
    //["{第5-16周}"]

    综合demo:

    "[".concat(([45,66].join(","))).concat("]");//[45,46];
    "{第18-20周}".replace(/[{}第周]/gi, "").split("-").map(function(ele, index, aaray){
    	return parseInt(ele);
    });//[18,20]; [18]
    document.getElementById("test2").innerHTML.replace(/<br>/gi, "").match(/{第[d]*[-]*[d]*周}*/gi);
    "水资源利用与保护周三第9,10,11节{第1-6周}施浩然3B-302多媒体教室152座信息检索周三第9,10节{第9-12周}谭长拥4A-207多媒体160座{第12周}".match(/{第[d]*[-]*[d]*周}*/gi);
    var courses_weekIndexs = "水资源利用与保护周三第9,10,11节{第1-6周}施浩然3B-302多媒体教室152座信息检索周三第9,10节{第9-12周}谭长拥4A-207多媒体160座{第12周}".match(/{第[d]*[-]*[d]*周}*/gi);
    var datasetWeek = courses_weekIndexs.map(function(ele, index, array){
    	//console.log("ele:", ele);
    	var weekIndexs = ele.replace(/[{}第周]/gi, "").split("-").map(function(E, I, A){
    		return parseInt(E);
    	});//[18, 20]; [18]
    	//console.log("weekIndexs:", weekIndexs);
    	var result = "[".concat((weekIndexs.join(","))).concat("]");
    	//console.log(result);
    	return result;
    }).join(";");
    //courses_weekIndexs.join(";");
    datasetWeek
    

      运行结果:

    "[1,6];[9,12];[12]"

    2.参考文献:

      [JavaScript RegExp 对象](http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp)

  • 相关阅读:
    python内置函数
    conda和anaconda的区别
    闭包,装饰器,property
    【模板】大数乘法(51nod 1027)
    51nod 1791 合法括号子段
    51nod 1419 最小公倍数挑战
    51nod 1241 特殊的排序
    51nod 1090 3个数和为0
    【模板】51nod 1051 最大子矩阵和
    51nod 1267 4个数和为0
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/8034278.html
Copyright © 2020-2023  润新知