今天使用炎黄BPM 遇到url 中含有变量$[],需要将其变量内容截取出来。源码匹配有误,使用贪婪表达式进行匹配到最后的 ] .导致变量识别出错。
var url ="/w?sid=@sid&cmd=CLIENT_DW_PORTAL&processGroupId=obj_ec5a4a8befbb4a9c95c945ae76bf6fa2&appId=com.awspaas.user.apps.xxx.finance&dwViewId=obj_71a5fb34ddf547fd8a9f61b9a6aa8d70&condition=[{cp:"=",fd:"DATA_STATE",cv:"1"},{cp:"=",fd:"LOAN_FORM",cv:"$[BO_EU_LOAN_INFO.APPLY_NO]"}]";
// 可以看出condition 是以 [] 作为条件的边界结束 其中参数中含有特殊变量$[BO_EU_LOAN_INFO.APPLY_NO] 目前就是为了截取BO_EU_LOAN_INFO.APPLY_NO
url .match(/\$\[(.+?)\]/)
RegExp.$1
查阅资料后发现
*、+ 限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。
https://www.runoob.com/regexp/regexp-syntax.html
网友评论