如何使用正则表达式提取器获取带有/ = +符号的真实性标记?

时间:2014-06-15 19:07:15

标签: regex jmeter

我需要在JMeter中正确解析真实性令牌,其中包含+/和空格,如下所示......

<meta content="authenticity_token" name="csrf-param" />
<meta content="kJ+AzaV/saCxK+F4Ibh6LeEqH8rpiGZfyRKn3RGX960=" name="csrf-token" />

我有一个“正则表达式提取器”和正则表达式看起来像.. meta content="([^"]+)" name="csrf-token" />

问题是/%2F取代而=最后被替换为%3D

kJ+AzaV%2FsaCxK+F4Ibh6LeEqH8rpiGZfyRKn3RGX960%3D

如何正确解析真实性令牌?

2 个答案:

答案 0 :(得分:0)

您的属性看起来像 URI编码,所以在尝试执行更多操作之前,您需要对其进行解码

window.decodeURIComponent('kJ+AzaV%2FsaCxK+F4Ibh6LeEqH8rpiGZfyRKn3RGX960%3D');
// "kJ+AzaV/saCxK+F4Ibh6LeEqH8rpiGZfyRKn3RGX960="

此外,使用 RegExp HTML XML 中提取数据并不总是最好的想法,也许您可​​以尝试解析它通过 DOM树访问您想要的节点属性

答案 1 :(得分:0)

如果您将其作为参数传递,只需取消“编码?”它的盒子。

如果您需要像Paul S.建议的那样通过JavaScript解码,请考虑使用__javaScript函数,如下所示:

${__javaScript(decodeURIComponent("${YOUR_VARIABLE_NAME_HERE}"),)}

有关详细信息,请参阅How to Use JMeter Functions帖子系列。