我需要从旧版界面解析信息。我们没有能力更新旧消息。我对正则表达式不是很精通,但是我设法写了一个能满足我期望的表达式。我只需要同行评审和反馈以确保它是干净的。
来自旧系统的消息返回的值类似于以下示例。
%name0=value
%name1=value
%name2=value
Expression: /\%(.*)\=(.*)/g;
var strBody = body_text.toString();
var myRegexp = /\%(.*)\=(.*)/g;
var match = myRegexp.exec(strBody);
var objPair = {};
while (match != null) {
if (match[1]) {
objPair[match[1].toLowerCase()] = match[2];
}
match = myRegexp.exec(strBody);
}
这段代码有效,我可以在名称/值的中间添加部分匹配,而不会造成任何破坏。我必须假定字符的任何组合都可能出现在“值”匹配中。意思是它在消息中可以有等号和百分号。
这样够干净吗?
是否有可能破坏表达?
相关分类