【发布时间】:2014-12-02 04:55:30
【问题描述】:
我无法解析正则表达式。我已经从 regexpal.com 和 regex101.com 对其进行了测试(通过将表达式设置为 "(?:^csrf-token|;\s*csrf-token)=(.*?)(?:;|$)" 并将测试字符串设置为“__ngDebug=false; csrf-token=b2ssOJ4jNOlPdmXAHn4CORPvFoO4Ngsupej25tdj”)。
示例是jsfiddle。
function getCookie(name) {
var s = "__ngDebug=false; csrf-token=b2ssOJ4jNOlPdmXAHn4CORPvFoO4Ngsupej25tdj";
var regexp = new RegExp("(?:^" + name + "|;\s*"+ name + ")=(.*?)(?:;|$)", "g");
var result = regexp.exec(s);
return (result === null) ? null : result[1];
}
alert(getCookie("csrf-token"));
如果s 是"csrf-token=b2ssOJ4jNOlPdmXAHn4CORPvFoO4Ngsupej25tdj",那么它可以正常工作。请告诉我有什么问题。
预期的输出是"b2ssOJ4jNOlPdmXAHn4CORPvFoO4Ngsupej25tdj",没有输入(要测试的字符串是's')。
【问题讨论】:
-
您能否更清楚地了解您的预期输出是什么?另外,当你说你不能“解析一个正则表达式”时,你的意思是你不能创建一个你想要的正则表达式吗?
-
如果您从字符串创建正则表达式,您需要转义字符串中的任何反斜杠。所以
"\\s"不是"\s"。
标签: javascript regex