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)