我无法解析正则表达式。我已经从regexpal.com和regex101.com(通过将表达式设置为"(?:^csrf-token|;\s*csrf-token)=(.*?)(?:;|$)"
并将测试字符串设置为“__ngDebug = false; csrf-token = b2ssOJ4jNOlPdmXAHn4CORPvFoO4Ngsupej25tdj”)对其进行了测试。解析javascript中的正则表达式
该示例为jsfiddle。
function getCookie(name) {
\t \t \t
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')。
能否请你有点更清晰的了解你的期望的输出是什么?另外,当你说你不能“解析一个正则表达式”时,你的意思是说你不能创建一个正则表达式来达到你想要的效果? – nnnnnn 2014-12-02 04:57:50
@nnnnnn已更新 – 2014-12-02 04:59:42
如果您从字符串创建正则表达式,则需要转义字符串中的任何反斜杠。所以''\\ s“'不是'”\ s“'。 – nnnnnn 2014-12-02 05:02:19