一 前言
- 正则是一种特殊的字符串模式,用于匹配一组字符串。
- 常用工具
二 正则实际应用
- 截取后台json字符串,例如获取北京西城区,代码如下,
var obj = {
"id": "402881882ba8753a012ba8bff6f6001e",
"name": "西城区",
"displayName": "北京西城区",
"path": "402881882ba8753a012ba8bf474d001c,402881882ba8753a012ba8bff6f6001e",
"grade": 1,
"orderList": 0,
"areaCode": null
};
function execData (obj) {
obj = typeof obj =="object" ? JSON.stringify(obj) : obj;
var str, cityStr;
// 将后台数据转换成JSON字符串
// 把所有的引号都变成单引号,但是会出现有\的情况,将\全局替换
str = obj.replace(/\"/ig,"'").replace(/\\/g, "");
// 获得正则匹配后的数据
cityStr = str.replace(/.*displayName\'\:\'([\u4E00-\u9FA5]+).*'\,.*/, "$1");
return cityStr;
}
console.log(execData(obj));
2.工作中遇到需要知道编辑器上传了多少个音视频附件的问题(百度编辑器)
var str = '<p style="line-height: 16px;"><img style="vertical-align: middle; margin-right: 2px;" src="http://172.16.6.130:8080/oxer/resources/ots/resources/newAssets/fileupeditor/dialogs/attachment/fileTypeImages/icon_mp3.gif"/><a style="font-size:12px; color:#0066cc;" href="/oxer/datafiles/ots/@tenant/file/2017/0724/1500880448088053653.mp3" title="1.mp3">1.mp3</a></p><a style="font-size:12px; color:#0066cc;" href="/oxer/datafiles/ots/@tenant/file/2017/0724/1500880448088053653.rar" title="1.rar">1.mp3</a><p style="line-height: 16px;"><img style="vertical-align: middle; margin-right: 2px;" src="http://172.16.6.130:8080/oxer/resources/ots/resources/newAssets/fileupeditor/dialogs/attachment/fileTypeImages/icon_rar.gif"/><a style="font-size:12px; color:#0066cc;" href="/oxer/datafiles/ots/@tenant/file/2017/0724/1500880461783006922.zip" title="audiojs-master.zip">audiojs-master.zip</a></p><p><br/></p>';
// 拿到的是href="/oxer/datafiles/ots/@tenant/file/2017/0724/1500880448088053653.mP3"
var patt1 = new RegExp(/(href\=".+?")/, "ig");
// 拿到的是/oxer/datafiles/ots/@tenant/file/2017/0724/1500880448088053653.mP3,正好是我所需的播放地址
var patt2 = new RegExp(/href\="(.+?)"/, "ig");
var aa = str.match(patt1);
for (var i = 0, len = aa.length; i < len; i++) {
console.log(aa[i]);
}
3.匹配emoj
var str = "*#emo_01#*啥的公司地方官史蒂夫*#emo_02#*撒阿道夫";
str = str.replace(/\*#(.*?)#\*/g, function () {
var _arg1 =arguments[1];
return '<img src="./images/ios/'+_arg1+'">';
});